我想要一个允许我创建表单新实例的按钮,或者如果我已创建它只是让它再次弹出。
public void toolStripButton1_Click(object sender, EventArgs e)
{
if (!Form2Created)
{
Form2 Form_Prop = new Form2();
Form_Prop.Show();
Form2Created = true;
}
else
{
Form_Prop.WindowState = FormWindowState.Normal;
}
}
问题是Form_Prop“在上下文中不存在”(我肯定会知道它会因为我取消了关闭它的尝试而只是最小化它)
我该如何解决它?
答案 0 :(得分:2)
您必须让Form_Prop成为您班级中的成员字段(即使您定义了toolStripButton1_Click
。您也可以删除Form2Created字段:
Form2 Form_Prop;
public void toolStripButton1_Click(object sender, EventArgs e)
{
if (Form_Prop == null)
{
Form_Prop = new Form2();
Form_Prop.Show();
}
else
{
Form_Prop.WindowState = FormWindowState.Normal;
}
}
答案 1 :(得分:1)
您需要阅读Scopes
现在回答你的问题。您在 if语句中声明表单的实例,这意味着它外面无法访问。因此,您应该将其声明为
Form2 Form_Prop;
public void toolStripButton1_Click(object sender, EventArgs e)
{
if (Form_Prop == null)
{
Form_Prop = new Form2();
Form_Prop.Show();
}
else
{
Form_Prop.WindowState = FormWindowState.Normal;
}
}
答案 2 :(得分:0)
Form2 Form_Prop;
public void toolStripButton1_Click(object sender, EventArgs e)
{
Form_Prop = Form_Prop ?? new Form2();
Form_Prop.Show();
Form_Prop.WindowState = FormWindowState.Normal;
}