2

模态形式很清楚......

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim f As New myForm
    f.ShowDialog(Me)
    f.Dispose
End Sub

但是如何处理非模态形式?
在哪里处置?

    Dim f As New myForm
    f.Show(Me)
    f.Dispose

这将立即关闭新创建的表单,因此 f.Dispose 不应留在这里。
如果我把它放在 _FormClosing 处理程序中会很好但还不够,因为我们可以运行该表单的几个实例。

1)那么,在哪里以及如何处理第二个示例中打开的非模态表单?
2)这里有什么事件知道我们的子表单关闭了吗?

4

1 回答 1

3

您不需要调用Dispose无模式表单,因为表单的资源会自动清理,但以下两种情况除外:

  1. 它是多文档界面 (MDI) 应用程序的一部分,并且表单不可见
  2. 您已使用ShowDialog

您的场景不属于上述两种情况,因此您无需担心手动.Dispose()调用的位置,因为它不是必需的。

阅读Form.Close 方法文档以获取更多信息。

于 2013-10-16T16:04:57.693 回答