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

比如运行时出现form1,然后点击该窗体上的一个按钮,跳出窗体form2。如果再点击的话还会出现form2。就有两个了,单我要的效果只有一个。如果form2窗体已经存在,... 比如运行时出现form1,然后点击该窗体上的一个按钮,跳出窗体form2。如果再点击的话还会出现form2。就有两个了,单我要的效果只有一个。如果form2窗体已经存在,再点击就不会再生成。也就是说应该怎么判断窗体已经存在呢? 展开
 我来答
leejin_21
2011-01-06 · 超过70用户采纳过TA的回答
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:183万
展开全部
太多方法啦,随便说说吧
1、弄个全局变量(枚举),form2打开之后变量 =1 关闭 =0,这样就OK,这样是比较简单而且好理解的
2、弄个form2的对象--全局,判断form2的状态
试一下吧?!
_神__仙_
推荐于2018-11-29 · TA获得超过1257个赞
知道小有建树答主
回答量:806
采纳率:0%
帮助的人:529万
展开全部
判断Form2实例,可以在Form1中创建一个Form2的属性
当Form1的按钮点击时,判断Form1中Form2的实例是否为空,若为空则创建Form2实例,并将Form2实例Show出来,若Form1中的Form2实例不为空,则点击无效。
当Form2实例关闭时,将Form1中的Form2实例设为空。(可以将Form1作为参数传给Form2,并且将Form1中的Form2属性设为public,这样在Form2中就可以)

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;
public Form2(Form1 ff)
{
InitializeComponent();
f1 = ff;
}

private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
f1.f2 = null;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wyj37517
2011-01-06
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
你可以选择子窗体的方式。在frm1中打开frm2....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式