表格闭幕活动

时间:2016-09-14 19:18:27

标签: .net vb.net winforms formclosing

我有一个基础表单类,我的论坛继承。在继承表单中执行代码之前,是否可以从基本表单执行代码?我有一个检查,看看他们是否想在基类关闭,我想要什么都不执行,直到他们对弹出窗口表示肯定。我怎么能做到这一点?

3 个答案:

答案 0 :(得分:2)

假设您已经在基类的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

答案 1 :(得分:1)

不是处理子类中的事件,而是覆盖OnFormClosing方法。然后,您可以让基类实现按照它的选择执行。然后做你的东西。

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

答案 2 :(得分:0)

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