c#窗体的调用问题
private void menuItemAdd_Click(object sender, System.EventArgs e)
{
frmMDI1.frmForm1 form1=new frmMDI1.frmForm1(this);
form1.Show();
}
我用这个语句从主窗口中调用子窗体,结果是点一次出来一个窗体,有什么办法只让他出来一个,再点就不再出现了.请教一下,THANKS!!!
------解决方案--------------------private void menuItemAdd_Click(object sender, System.EventArgs e)
{
frmMDI1.frmForm1 form1=new frmMDI1.frmForm1(this);
form1.Close();
form1.Show();
}
唉,就一分!
------解决方案--------------------frmForm1.Show();
frmForm1.WindowState = FormWindowState.Normal;
frmForm1.BringToFront();
frmForm1.Activate();
------解决方案--------------------楼主的意思是只允许一个form1的实例吧,Show()之前先判断一下就行了
if (form1== null || form1.IsDisposed)
{
frmMDI1.frmForm1 form1=new frmMDI1.frmForm1(this);
form1.Show();
}
else
{
form1.BringToFront();
}
------解决方案--------------------lxcnn(过客) ( ) 信誉:100 Blog
正确!
但是觉得
form1.BringToFront();
改为
form1.Active();
是不是好些:)
------解决方案--------------------典型的单例模式
------解决方案--------------------另一个方法:好处是没有使用成员级的变量。
foreach (Form form in this.MdiChildren)
{
if (form is frmForm1)
{
form.Activate();
return;
}
}
//这里处理如果没有正在打开
------解决方案--------------------当打开一个窗体以后让那个按钮不可以不就行了吗
关闭以后再让它恢复