我写的代码如下:
                SPXX_addLeibie add_Fom= new SPXX_addLeibie();
add_Fom.TopLevel= false;
this.panel1.BringToFront();
this.panel1.Controls.Add(add_Fom);
add_Fom.Show();
请问我如果想判断窗体“SPXX_addLeibie”是否已经存在,我应该怎么修改代码?
 (现在是没运行一次这条语句就创建一个新的“SPXX_addLeibie”)请大家帮帮忙,我应该用什么属性来判断?

解决方案 »

  1.   

    Form1 add_Fom;            if (add_Fom == null || add_Fom.IsDisposed)
                    add_Fom = new Form1();
                add_Fom.Show();
      

  2.   

    你可以在外部建立一个标记,在窗体构造时和关闭时分别处理就行了。如果你能遍历已存在的窗体的话,可以用Form.GetType().ToString()是否等于SPXX_addLeibie来判断是否是目标窗体。
      

  3.   

    bool  OpenOnce(Form frm)
    {
    foreach(Form mdifrm in this.MdiChildren)
    {
    if(frm.Text==mdifrm.Text)
    {
    mdifrm.Activate();
    return false;
    }
    }
    return true;
    }