zoukankan      html  css  js  c++  java
  • C# Mid窗口的创建

    首先在C#里添加一个窗体,命名为MdiMain,将其IsMdiContainer设定成true,这样MDI主窗体就建立了。然后再添加新窗体,命名为MdiChild。现在运行程序,会发现只运行了MdiMain这个主窗体。呵呵因为我们没有写任何代码,第二个窗体当然不能出现了。现在来添加这个代码。

    在MdiMain窗体上添加一个Menu,然后随便写个子菜单。双击子菜单,会出现它的Click事件,在这个事件内写如下代码:

    MdiChild frmMdiChild=new MdiChild();
    frmMdiChild.MdiParent=this;
    frmMdiChild.Show();

    这样在单击菜单项的时候就能显示MdiChild这个窗体了。但是这样会出现一个问题,就是说如果我按两次那个菜单项就会出现两个MdiChild窗体,呵呵,这是因为在C#中窗体就是一个Class,用刚才的代码就新建了一个MdiChild的实例。所以你按几次菜单项就会出现几个窗体了。控制的方法之一就是写一个变量,来存放是否打开了这个窗体,如果打开了就不继续执行了。这个小代码还是很简单的。

    如果想通过程序关闭MdiChild窗体,只需在MdiChild里添加一个Button,在Button的Click事件里写上Close();就可以了。

    程序示例片段如下:

    p rivate   void 打开CSV文件ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Form frmTemp = new Form();
                frmTemp.MdiParent = this;
                frmTemp.Text = "Window#" + FormCount.ToString();
                FormCount++;
                frmTemp.Show();
            }

           p rivate  void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                this.Close();
            }

            p rivate  void 层叠ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                this.LayoutMdi(MdiLayout.Cascade);
            }

            p rivate  void 水平排列ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                this.LayoutMdi(MdiLayout.TileHorizontal);
            }

            p rivate  void 竖直排列ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                this.LayoutMdi(MdiLayout.TileVertical);
            }

  • 相关阅读:
    21. Node.Js Buffer类(缓冲区)-(一)
    20.Node.js EventEmitter的方法和事件
    19.Node.js EventEmitter
    18.Node.js 事件循环
    17.Node.js 回调函数--异步编程
    16.REPL 命令
    15.Node.js REPL(交互式解释器)
    14.NPM 常用命令
    **PHP Notice: Undefined index:...问题的解决方法
    **CI中的order_by在get_where之前
  • 原文地址:https://www.cnblogs.com/hackpig/p/1668456.html
Copyright © 2011-2022 走看看