日期:2014-05-18  浏览次数:20810 次

window forms怎麼判斷子表單是否已經打開
window forms怎麼判斷子表單是否已經打開

------解决方案--------------------

C# code

if (Form.isShown)
{
  messagebox.show("打开");
}
else
{
messagebox.show("关闭");
}

------解决方案--------------------
老问题了 用遍历窗体就可以

C# code

//需要的遍历方法
private bool checkChildFrmExist(string childFrmName)
{
foreach (Form childFrm in this.MdiChildren)
{
//用子窗体的Name进行判断,如果已经存在则将他激活
if (childFrm.Name == childFrmName)
{
if (childFrm.WindowState == FormWindowState.Minimized)
childFrm.WindowState = FormWindowState.Normal;
childFrm.Activate();
return true;
}
}
return false;
}
//子窗体打开的方法
private void button2_Click(object sender, EventArgs e)
{
//判断子窗体是否已经打开,红色部分为子窗体名字
if (this.checkChildFrmExist("frm_Jinhuodan") == true)
{
return;
}
frm_Jinhuodan fm = new frm_Jinhuodan();
fm.MdiParent = this;
fm.Show();
}
------解决方案--------------------
晕 那你不会在代码里加上这个方法啊~
这个方法就是用来判断的 自己写上去~(复制 粘贴)
------解决方案--------------------
探讨
我的父表單上就沒有checkChildFrmExist()這個方法

------解决方案--------------------
到书店买点书看看吧,表单间通过定义属性就可以互相传递了。
------解决方案--------------------
有的话我也学习呵呵 那是我找到的简单易懂的方法

另: 设置成public的textbox可以实例化这个窗体 比如form1 f=new form1();f.textbox1.text就可以访问到