表单关闭事件

Form Closing Event

我的论坛继承了一个基本形式 class。在以继承形式执行代码之前,是否可以从基本形式执行代码?我检查一下他们是否想在基础 class 中关闭并且在他们对弹出表单说“是”之前我不想执行任何操作。我怎样才能做到这一点?

不是在您的子class中处理事件,而是覆盖 OnFormClosing 方法。然后你可以让基础 class 实现按照它的选择去做。然后做你的事情。

Protected Overrides Sub OnFormClosing(e As System.Windows.Forms.FormClosingEventArgs)
    MyBase.OnFormClosing(e)
    'my stuff
End Sub

假设您已经在基础 class 的 FormClosing 事件中将 e.Cancel 属性 设置为 true 或 false,您只需检查 e.Cancel继承形式的值:

Protected Overrides Sub OnFormClosing(e As FormClosingEventArgs)
  MyBase.OnFormClosing(e)

  If Not e.Cancel Then
    MessageBox.Show("Doing Stuff")
  End If
End Sub

为了获得我想要的确切行为,我在基本 Closing 事件中添加了两个事件。一个是在检查之后,另一个是在代码执行之后。然后,我替换了 Inherited class 上的 FormClosing 事件以使用这两个事件。这种方法给了我更多的自由,然后只是调用 mybase.OnFormClosing