如何使MDI子窗体不重复被打开

原创 2006年06月21日 13:22:00

有很多朋友希望MDI子窗体不重复被打开,如果子窗体已经被创建了,则把它激活,而不是又创建了一个MDI子窗体,其实中C#提供的MdiChildren这个属性就可以解决这个问题,下面假设一个treeview控件,点击treeview上面的相应结点,就会创建以这个结点命名的MDI子窗体,若是子窗体已经被创建,则把它激活,显示在所有子窗体的最前面。代码如下:

private void treeView_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)

{

    System.String str = treeView.SelectedNode.Text;//取得相应treeview结点的text值

    bool remark=true;

    for(int i=0; i<this.MdiChildren.Length;i++)

    if(this.MdiChildren[i].Name.Equals( str )) //查看有没有相同的MDI子窗体

    {

        this.MdiChildren[i].Activate(); //子窗体已经被创立,激活它

        remark=false;

        break;

    }

    if(remark) // 末创立,建立子窗体

    {

        Form2 temp_form = new Form2();

        temp_form.MdiParent=this;

        temp_form.Name=str;

        temp_form.Text=str;

        temp_form.Show();

    }

}

 

若是有很多种窗体(例如form2 , form3 , form4等等 )要创建,那么可以用一个switch来判断具体要创建哪个。

 

还有一个办法就是判断子窗体的句柄,请参见CSDN中“愚翁专栏”博客的相关内容。在这里不重复讲述了。

也可以看我的另外一篇博客

 

如何使窗体不重复被打开

http://blog.csdn.net/tjvictor/archive/2007/01/18/1486420.aspx

C#设置MDI子窗体不可移动

You cannot make the child form stay fixed in the parent form by just chaning a property. You can try...

关于限制子窗体在父容器中移动边界的总结(很简单的东西,写给新人)

有时候,我们直接用MDI父窗体+MDI窗体可以方便的构建多文档应用,但在有些时候,我们不选择使用MDI窗体形式, 可能是出于某些限制,比如,你需要在父窗体中使用控件,但老是把新建的子窗体给遮住,你选择...

C#MDI打开子窗体去掉自动生成的菜单栏

C#在DMI中打开子窗体时自动生成了菜单栏,怎么去掉菜单栏呢呢? 先在父窗体的加载事件中打开子窗体并使它最大化 private void MDIParent1_Load(object send...

避免MDi子窗体重复打开

  • 2012年12月13日 14:01
  • 43KB
  • 下载

机房收费系统-- MDI子窗体显示技巧(续vb.net版)

mdi父窗体中,无论打开多少个子窗体,都只显示一个子窗体

MFC 判断子窗体是不是已经打开,避免重复创建

MFC 判断子窗体是否已经打开,避免重复创建 在主窗体中,嵌入一个很多个子窗体,但是,每次只显示一个。 我的做法是,首先在主窗体头文件中定义子窗体对象,然后在单击显示按钮的时候,先判断子窗体是否已...
  • ghevinn
  • ghevinn
  • 2014年06月09日 10:39
  • 3724

使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体

1、网上流传最广的应该是隐藏法了,原理就是把旧窗口隐藏掉,再打开新窗口。 具体的代码如下: //在旧窗口中的合适位置写这些代码 //新建一个NewForm窗口(NewForm是自...

去除MDI子窗体最大化时的默认图标

MDI程序中,子窗体最大化后,子窗体的icon会自动显示在主窗体菜单的左上角。根据子窗体Icon设置的不同,默认情况下会出现下面的两种情况,而且这两种情况都让人抓狂: 1 子窗体设置了自定义的icon...

c# mdi子窗体简单教程

刚刚学习MDI,刚刚看到了这篇文章,看了一下,学习到了,分享到自己的博客上 http://www.cnblogs.com/hailexuexi/archive/2012/10/23/2735393....
  • bournes
  • bournes
  • 2013年01月11日 17:14
  • 538
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何使MDI子窗体不重复被打开
举报原因:
原因补充:

(最多只允许输入30个字)