我如何关闭第二张表格?

时间:2013-10-25 17:03:39

标签: c#

如何从C#中的另一个表单关闭第二个表单?

我在Form1中使用它,但它不起作用。

Form2 form2 = new Form2();

form2.Close();

怎么了?

2 个答案:

答案 0 :(得分:0)

通过第二种形式,表单已经打开,您需要获取该表单的实例然后将其关闭。您可以使用Application.OpenForms属性,它将为您提供所有已打开的表单。得到你需要的那个并关闭它。

var form2 = Application.OpenForms["Form2"] as Form2;
if (form2 != null)
    form2.Close();

答案 1 :(得分:0)

据推测,在某个时间点,第一个表单创建了Form2类型的实例并显示了它。然后它放弃了那个参考。您应该将它存储在Form1的实例字段中,以便以后可以访问它并关闭它,而不是抛弃该引用;

public class Form1 : Form
{
    private Form2 child;
    private void PlaceWhereForm2IsShown()
    {
        child = new Form2();
        child.Show();
    }
    private void CloseForm2()
    {
        child.Close();
    }
}