如何关闭第二个窗体

本文关键字:窗体 第二个 何关闭 | 更新日期: 2023-09-27 18:36:51

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

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

Form2 form2 = new Form2();
form2.Close();

怎么了??

如何关闭第二个窗体

大概在某个时间点,第一个表单创建了一个类型 Form2 的实例并显示它。 然后,它放弃了该引用。 与其丢弃该引用,不如将其存储在 Form1 的实例字段中,以便以后可以访问它并关闭它:

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

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

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