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