如何限定相同窗体只能同时存在一个?????
我有一个主界面FormMain,点击其上的按钮1会出现Form2界面,但每点一次就出现一个Form2!!!怎么样限定只能有一个Form2存在呢??? 如何实现如果Form打开了则焦点到Form2,如果没打开则打开。求帮助,求易做图!!!
谢谢 --------------------编程问答-------------------- 参考单态模式 --------------------编程问答-------------------- 定义全局变量Form form;
在事件中判断
if(form==null && form.isdisposed){
form=new Form();
form.show();
}else{
form.active()
}
--------------------编程问答-------------------- 单例模式 --------------------编程问答-------------------- 可以做一个全局的static,每次创建前先判断是否存在 --------------------编程问答-------------------- static Form2 form = null;
public static Form2 GetInstance()
{
if (form == null || form.IsDisposed)
{
form = new Form2();
}
return form;
}
打开form2时
Form2 list = Form2.GetInstance();
list.Show(); --------------------编程问答-------------------- 单件模式,代码具体例如下:
private static CustInfo instance;
public static CustInfo Instance
{
get
{
if (instance == null)
{
instance = new CustInfo();
}
return instance;
}
set
{
instance = value;
}
}
其它窗口直接调用CustInfo.instance --------------------编程问答-------------------- 补充一下,
set
{
instance = value;
}
这段不要了,只读就好了 --------------------编程问答--------------------
--------------------编程问答-------------------- frm1= new FrmConfig();
if (frm1!= null && !frm1.IsDisposed)
{
frm1.Show();
frm1.BringToFront();
}
else
{
frm1= new FrmConfig();
frm1.Show();
}
改为 frm1= new Form1();
我没改过来 --------------------编程问答-------------------- 设置一个全局变量最好,否则
--------------------编程问答--------------------
foreach (var item in Application.OpenForms)
{
if (item is Form2)
{
return;
}
}
Form2新实例.Show();
return 前加一行 item.Active();
补充:.NET技术 , C#