首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

C# 怎么判断窗体是否打开

2012-03-09 
C# 如何判断窗体是否打开C# 如何判断窗体是否打开!避免重复打开同一个窗体[解决办法]C# codeMDI窗体:设有

C# 如何判断窗体是否打开
C# 如何判断窗体是否打开!避免重复打开同一个窗体

[解决办法]

C# code
MDI窗体:设有两个窗体frmMain,frmChild,则:frmMain: 设IsMdiContainer属性为true打开子窗口:在相关事件中写如下代码:frmChild child=new frmChild();child.MdiParent=this;//this表示本窗体为其父窗体child.Show();在打开子窗体时,如果只允许有一个子窗体,可以加入如下判断:if (this.ActiveMdiChild!=null){this.ActiveMdiChild.Close(); //关闭已经打开的子窗体//....}
[解决办法]
C# code
Form2 F2 ;if(F2 == null || F2.IsDisposed){   F2 = new Form2();   F2.Show();//如果之前未打开,则打开。}else{   F2.Activate();//之前已打开,则给予焦点,置顶。}
[解决办法]
foreach (Form f in Application.OpenForms)
{
f.Name //是打开窗体的Text

//以下判断.......
 }
[解决办法]
不知道你的目的是什么,不同目的,处理方法不同。

下列方法是检测一个画面程个程序中是否打开。

可以在程序中建立一个List<string>列表,这个列表为全局静态变量,当打开一个窗体以后,将该窗体的(命名空间+类名)添加近来,当关闭的时候,从该List中删除。打开窗体之前,判断List中是否存在该窗体,如果存在就不打开了。
[解决办法]
是MDI窗体吗?是的话在每一次打开子窗体前这样:
foreach (Form f in this.MdiChildren)
{
f.Close();
f.Dispose();
}
不是的话就这样:
Form f = new Form();
f.ShowDialog();
保证你每次打开只有一个窗体

热点排行