请问下~在f1窗口里有个按钮1,单击按钮1显示出了一个窗口f2~再次单击这个按钮1的时候会提示这个窗口f2已经在运行了~~只有关闭f2的时候再次点击才会再次出现f2

解决方案 »

  1.   

    class f1
    {
       private f2 _f2;   button_click
      {
         if (_f2!=null && !_f2.IsDispose)
         {
               Message:"已经运行啦,哥们!"
         }
         else
         {
             _f2=new f2();
             _f2.Show();
          } 
      }
    }代码自己写吧
      

  2.   

    参考如下:
                FormCollection forms = Application.OpenForms;
                Form MDIForm = new Form();
                bool isOpen = false;            // 在打开的窗口中找到ManagerForm窗体
                foreach (Form form in forms)
                {
                    // 如果已经打开(运行),则不再打开
                    if (form is ManagerForm)
                    {
                        isOpen = true;
                        form.Activate();
                    }
                }            // 如果没有打开,则打开.
                if (isOpen == false)
                {
                    ManagerForm manageForm = new ManagerForm();
                    manageForm.Show();
                }
      

  3.   

    解释:
    Form MDIForm = new Form(); // 这一句没有作用,忽略.
    form.Activate(); // 激活,设置为当前窗口.
      

  4.   

    这样子貌似不行吧~~ 程序运行到if (_f2!=null && !_f2.IsDispose)的时候就会出错~~f2还没有实例化~我就根据你的思路下去写还是不行
      

  5.   

    你写的那个是MDI窗口的吗?我要的不是MDI窗口的啊~~
      

  6.   

    吼吼吼~~~刚看了名字以为是MDI窗口的~呵呵~~谢谢~~解决了~
      

  7.   

    我用了imwjb的代码 可以用啊
     Form2 form2;
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                if (form2!=null&&!form2.IsDisposed)
                {
                    MessageBox.Show("Form2 is opened");
                }
                else
                {
                    form2 = new Form2();
                    form2.Show();
                }
            }
      

  8.   

    我知道我错在哪里了~~有个符号没看清楚~打错了~~imwjb对不住啦~~就是&& 打成了||~~