我有 2 个表单 .. form1 和 form2 .. 我在 form1 上有 button1 加载 form2 但是每次我点击 button1 它都会加载 form2 的新实例
如果按钮1打开,我希望将它带到最前面,如果它被最小化,我希望它恢复它
这应该可以工作(虽然还没有测试过)
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处理第二个的Form Closing事件
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;
}
您可以通过在 form2 中创建一个 onClose 事件来执行此操作,在该事件中取消关闭,并将可见性设置为隐藏。
然后不再创建新实例,而是再次将可见性设置为可见。