关闭无模式表格

当你需要在应用程序主屏幕旁边永久显示某些内容时,可以使用无模式表单(考虑从设备或 MDI 子窗口异步出现的数据流的图例或视图)。
但是当你想关闭它时,无模式形式会带来独特的挑战。如何检索实例并在该实例中调用 Close 方法?

你可以保留一个引用要关闭的实例的全局变量。

theGlobalInstance.Close();
theGlobalInstance.Dispose();
theGlobalInstance = null;

但我们也可以选择使用 Application.OpenForms 集合,其中表单引擎存储所有已创建但仍处于打开状态的表单实例。

你可以从此集合中检索该特定实例,并调用 Close 方法

Form2 toClose = Application.OpenForms.OfType<Form2>().FirstOrDefault();
if(toClose != null)
{
    toClose.Close();
    toClose.Dispose();
}