C# 怎么判断一个窗体打开

问题

运行时出现Form1,然后点击一个按钮,就会跳出窗体Form2.如果再点击的话还会跳出一个窗口(因为我用的是new form ,重新创建了一个form2,所以会一直跳。)
我要的效果就是只能出来一个,如果再点击的话就不会出现新的。那么这就要加一个if语句来判断了。


代码展示:

Form1 部分代码:
public Form2 f2 =null;//创建一个子表实例
private void button1_Click(object sender,EventArgs e)
{
    if(f2==null)
    {   //如果为空的话,说明还没有创建,就加载一个子表。
        f2=new Form2(this);
        f2.Show();
    }//如果不为空的话,有了子表,就不会执行任何东西。
}

Form2部分代码:
Form1 f1; //创建一个Form1类型的变量。
public Form2(Form1 ff)
{
    InitializeComponent();
    f1=ff;
}
private void Form2_FormClosing(object sender,FormClosingEventArgs e)
{   //当Form2实例关闭时,将Form1中的Form2实例设为空,
    f1.f2=null;
}

回头看:
再从头想问题,我是想怎么在一个控制另一个窗体,我可以在A窗体上new一个B窗体。但是我必须要设置一个if条件语句来判断是否已经打开了一个B窗体。那么Form1(对应A窗体)上就必须有一个链接B窗体的一个东西,或者是参数,或者是变量。当我已经有了一个子窗体之后,那么f2就不是null了。那么if判断就会直接跳过
加上去好加,那么怎么删除呢?因为我在打开A窗体的时候就已经打开了B窗体,只不过没有显示出来而已,而且我设置的初始值为null。
Form1中有Form2 的变量,容易想,因为Form1控制着Form2,但是Form2中有From1的变量。

你可能感兴趣的:(问题)