c#防止重复表单
本文关键字:表单 | 更新日期: 2023-09-27 18:24:12
我有两种形式。。形式1和形式2。。我在表单1上有加载表单2的按钮1,但每次单击按钮1都会加载表单2 的新实例
如果按钮1是打开的,我想让它进入前窗体2,如果它被最小化,则恢复
这应该可以工作(不过还没有测试)
public static bool _Invoked;
Form2 f2 = new Form2();
private void button1_Click(object sender, EventArgs e)
{
if (!_Invoked)
{
_Invoked = true;
f2.Show();
}
else if (_Invoked)
{
f2.BringToFront();
_Invoked = false;
}
}
添加评论以进一步澄清
编辑:
刚刚测试了这个和它的工作
Form2 f2 = new Form2();
bool _Clickone = false;
private void button1_Click(object sender, EventArgs e)
{
if (!_Clickone)
{
_Clickone = true;
f2.Show();
}
else
{
f2.WindowState = FormWindowState.Normal;
f2.ShowInTaskbar = true;
f2.BringToFront();
}
}
然后为m 处理第二个表单关闭事件
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;
}
您可以通过在form2中创建onClose事件来实现这一点,在该事件中取消关闭,并将可见性设置为隐藏。
然后,不要创建新实例,而是将可见性再次设置为可见。