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

4997人阅读 评论(3) 收藏 举报

有很多朋友希望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

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1847408次
    • 积分:15814
    • 等级:
    • 排名:第660名
    • 原创:152篇
    • 转载:27篇
    • 译文:16篇
    • 评论:872条
    最新评论