如何在 C# 中从另一个表单关闭第二个表单?
我在 Form1 中使用它,但它不起作用。
Form2 form2 = new Form2();
form2.Close();
怎么了??
如何在 C# 中从另一个表单关闭第二个表单?
我在 Form1 中使用它,但它不起作用。
Form2 form2 = new Form2();
form2.Close();
怎么了??
通过第二种形式,该表单似乎已经打开,您需要获取该表单的实例,然后将其关闭。您可以使用Application.OpenForms
属性,它将为您提供所有打开的表格。获取您需要的并关闭它。
var form2 = Application.OpenForms["Form2"] as Form2;
if (form2 != null)
form2.Close();
大概在某个时间点,第一个表单创建了一个类型的实例Form2
并显示它。然后它丢弃了该引用。与其丢弃该引用,不如将其存储在实例字段中,Form1
以便稍后访问并关闭它:
public class Form1 : Form
{
private Form2 child;
private void PlaceWhereForm2IsShown()
{
child = new Form2();
child.Show();
}
private void CloseForm2()
{
child.Close();
}
}