当前位置:编程学习 > C#/ASP.NET >>

如何限定相同窗体只能同时存在一个?????

我有一个主界面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;
  }

这段不要了,只读就好了 --------------------编程问答--------------------

            if (frm1!= null && !frm1.IsDisposed)
            {       
                frm1.Show();
              frm1.BringToFront();
            }
            else
            {
                frm1= new FrmConfig();
                frm1.Show();
            }
--------------------编程问答-------------------- frm1= new FrmConfig();
改为 frm1= new Form1();

我没改过来 --------------------编程问答-------------------- 设置一个全局变量最好,否则

foreach (var item in Application.OpenForms)
{
    if (item is Form2)
    {
        return;
    }
}
Form2新实例.Show();
--------------------编程问答--------------------
引用 10 楼  的回复:
设置一个全局变量最好,否则

C# code

foreach (var item in Application.OpenForms)
{
    if (item is Form2)
    {
        return;
    }
}
Form2新实例.Show();

return 前加一行 item.Active();
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,