`
lovnet
  • 浏览: 6692248 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

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

阅读更多

有很多朋友希望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#WinForm案例_父MDI窗体不重复打开子窗体

    附件中包含一个C#WinForm中父MDI窗体不重复打开子窗体的案例,父窗体在打开子窗体之前先判断子窗体是否存在,若存在则激活;若不存在,实例化并打开子窗体。开发环境:VS2012。

    c# 防止 打开 重复子窗体

    //子窗体不存在,打开子窗体 if (cwExists == false) { parentWindow.IsMdiContainer = true; childrenWindow.MdiParent = parentWindow; childrenWindow.WindowState = System.Windows.Forms.FormWindowState...

    子窗体架构

    适合初学者的VB.NET子窗体初始架构。 有菜单切换、 子窗体显示在主窗体内并最大化; TabControl 归纳子窗体,双击标签关闭对应窗体; 重复打开提醒。

    vb学生成绩管理系统

    8.创建删除学生记录窗体(frmDeleteStudent)-MDI子窗体 9.创建删除课程记录窗体(frmDeleteCourse)-MDI子窗体 10.创建删除成绩记录窗体(frmDeleteGrade)-MDI子窗体 11.创建删除用户...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    实例209 使子窗体最大化显示 281 实例210 对子窗体进行水平排列 282 实例211 对子窗体进行垂直排列 283 实例212 对子窗体进行层叠排列 284 10.2 继承窗体的使用 285 实例213 使用继承选择器创建继承窗体 285 实例214...

    软件工程知识点

    (2)需求原型可被用来解决用户对软件系统在需求认识上的不确定性。一般情况下,开发人员将软件系统中最能够被用户直接感受的那一部分东西构造成为原型。例如,界面、报表或数据查询结果。 4.结构化分析建模 所谓...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例058 用TreeSet生成不重复自动排序 随机数组 71 实例059 Map映射集合实现省市级联选择框 73 第4章 字符串处理技术 75 4.1 格式化字符串 76 实例060 把数字格式化为货币字符串 76 实例061 格式化当前日期 77 实例...

    Delphi开发范例宝典目录

    实例054 如何关闭MDI类型窗体中的子窗体 63 实例055 向提示框中添加图标 64 第2章 控件应用 67 2.1 TEdit控件应用典型实例 68 实例056 从右至左输入数据 68 实例057 为TEdit控件添加列表选择框 69 实例...

    C#.net_经典编程例子400个

    44 1.13 窗体控制技术 45 实例044 在关闭窗口前加入确认对话框 45 实例045 使用任意组件拖动窗体 46 实例046 修改提示字体及颜色 47 1.14 其他技术 48 实例047 如何为MDI类型窗体设置...

    C#编程经验技巧宝典

    4 &lt;br&gt;0009 设置Windows应用程序启动窗体 5 &lt;br&gt;0010 设置Web应用程序起始页 5 &lt;br&gt;0011 如何设置程序的出错窗口 5 &lt;br&gt;0012 如何进行程序调试 6 &lt;br&gt;0013 如何结束不能正常运行的程序 ...

    C#全能速查宝典

    2.1.19 MdiChildren属性——获取子窗体的数组 146 2.1.20 MdiParent属性——设置父窗体 147 2.1.21 MinimizeBox属性——是否显示最小化按钮 147 2.1.22 Minimum属性——数字显示框的最小值 148 2.1.23 Opacity属性...

    1345个易语言模块

    各类已打开 的数据库记录打印.ec 同步目录.ec 同步缩放控件.ec 同步缩放控件1.0.ec 同步缩放窗口1.0.ec 吸 附模块.ec 周易模块,易经模块,八卦模块 V 1.22.ec 和是几与谁最大.ec 响应左键放开.ec 四则混合运算模 块....

Global site tag (gtag.js) - Google Analytics