当我点击工具条菜单时,它每次都会显示新的表单。我想停止它一次又一次地显示相同的表单。在给定的代码中,form2一次又一次地显示。我想停止它,所以它显示一次。
喜欢:
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.MdiParent=this;
f.Show();
}
答案 0 :(得分:3)
你应该可以这样做:
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
var f2 = this.MdiChildren.OfType<Form2>().FirstOrDefault();
if (f2 != null)
{
f2.Show();
return;
}
Form2 f = new Form2();
f.MdiParent=this;
f.Show();
}
这将显示表单(如果已存在),否则创建并显示它。
答案 1 :(得分:2)
另一种方法是在类级别声明Form2类型的变量:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Form2 f2 = null;
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
if (f2 == null || f2.IsDisposed)
{
f2 = new Form2();
f2.MdiParent = this;
f2.Show();
}
else
{
if (f2.WindowState == FormWindowState.Minimized)
{
f2.WindowState = FormWindowState.Normal;
}
f2.Activate();
}
}
}