C#怎么判断一个窗体已经打开
比如运行时出现form1,然后点击该窗体上的一个按钮,跳出窗体form2。如果再点击的话还会出现form2。就有两个了,单我要的效果只有一个。如果form2窗体已经存在,...
比如运行时出现form1,然后点击该窗体上的一个按钮,跳出窗体form2。如果再点击的话还会出现form2。就有两个了,单我要的效果只有一个。如果form2窗体已经存在,再点击就不会再生成。也就是说应该怎么判断窗体已经存在呢?
展开
展开全部
判断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;
}
当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;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以选择子窗体的方式。在frm1中打开frm2....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询