C# 在WinC窗体中使用Show()时如何检测窗口何时关闭#

C# 在WinC窗体中使用Show()时如何检测窗口何时关闭#,c#,winforms,show,C#,Winforms,Show,在我的所有新窗口中,我都以以下方式使用ShowDialog() SomeGui test = new SomeGui(); test.ShowDialog(); refreshSomeListView(); 然而,最近我开始使用Show()而不是ShowDialog(),而且它的效果要好得多。唯一的缺点是refreshSomeListView()不能像上面的例子那样使用,因为如果我把它放在那里,当新窗口出现时它会立即执行 知道用户已关闭test窗口并且现在已关闭refreshSomeListV

在我的所有新窗口中,我都以以下方式使用ShowDialog()

SomeGui test = new SomeGui();
test.ShowDialog();
refreshSomeListView();
然而,最近我开始使用Show()而不是ShowDialog(),而且它的效果要好得多。唯一的缺点是
refreshSomeListView()不能像上面的例子那样使用,因为如果我把它放在那里,当新窗口出现时它会立即执行


知道用户已关闭
test
窗口并且现在已关闭
refreshSomeListView()的最佳方法是什么吗?对此有什么建议?它应该包括在关闭/关闭时在测试GUI中设置事件,还是有其他/更好的方法?

您可以订阅
表单.Closed
事件并在其处理程序中执行刷新。是此事件的MSDN描述。

在VB.Net中:

Dim test as new SomeGui()
AddHandler test.Closed, AddressOf refreshSomeListView
test.Show

很好,很有效。您可以使用一些代码示例更新您的答案,以供将来参考。对于基本问题的基本答案,代码示例几乎不是必需的。尽管Charles不认为有必要,但下面是指向代码示例的链接,以供将来参考