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

来源:互联网 发布:时代光华管理课程知乎 编辑:程序博客网 时间:2024/04/29 13:04

问题

运行时出现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的变量。

原创粉丝点击