c#.net2005比如在windows窗体form1(主界面)的toolstrip1上按button1,调用form2。在关闭form2情况下,再按button1,这个没问题。
在没有关闭form2的情况下,再按button1——该怎么样实现不在打开form2。
                                        (最好用messagebox进行提示)偶是新手!敬请各位大虾指教!

解决方案 »

  1.   

    将所有子窗体类定义为父窗体类的内部成员变量,判断是否null来决定是否new子窗体对象
      

  2.   

    class Parent{
        sub1 sub_1 = null;
        sub2 sub_2 = null;
        
        public method(){
            if(sub_1 == null)
                sub_1 = new sub1();
            sub_1.show();
        }
    }class sub1{}class sub2{}
      

  3.   

    form2 frm;private void btn_click(....)
    if (null!=frm)
    {
    messagebox.show("Already open.");
    return;
    }
    frm = new form2();
    frm.show();
    }
      

  4.   

    yanleiyigan(pk的眼泪) ( ) 信誉:100    Blog   加为好友  2007-04-29 20:30:57  得分: 0  
     
     
       你换成模态窗口,就不会有这种问题了.
      
     那也点不了按钮啊.
      

  5.   

    noway8881先多谢了,成功实现了点第一次调用form2,点第二次出现messagebox,但是:关闭messagebox和关闭form2后,再点第三次就出错了——没有调用form2,直接弹出messagebox,而且以后一直都是messagebox,打不开form2了。附:使用说明 f;
            private void 使用说明ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if ( null != f )
                {   
                    MessageBox.Show("Already open.");
                    return;
                }            f = new 使用说明();
                f.Show();
            }还请大虾们赐教啊
      

  6.   

    使用说明 f;private void ToolStripMenuItem_Click(object sender, EventArgs e)
    {
       if(f == null || f.IsDisposed)
       {
          f = new 使用说明();
          f.Show();
       }
       else
       {
          f.Focus();
       }
    }这样就可以了...
      

  7.   

    我这种方式是这好的!另外。如果你是MDI的话。还有其他方式...