Form= new form();
Form.showDialog();
This.close();
新窗体将打开,但 this.close 似乎未激活。所以现在新形式是开放的,但旧形式仍然存在。
注意:我正在尝试关闭并打开同一窗体的新实例。
Form.ShowDialog
是一个阻塞调用。这意味着在它返回之前,它之后的代码不会运行(如果这是在 UI 线程上,你的应用程序将显示为无响应(。从 MSDN 页面:
可以使用此方法在应用程序中显示模式对话框。调用此方法时,直到关闭对话框后才会执行其后的代码。
您可能希望Form.Show
,以获得一个没有阻塞的窗口。你还没有描述你的完整用例,但是展示其他东西并关闭自己是一件非常奇怪的事情,猜测也有更好的方法来解决你的问题。