我有一个基本窗体类,我有我的论坛继承。在执行继承的表单中的代码之前,是否可以从基本表单执行代码?我有一个检查,看看他们是否想关闭基类,我不想执行任何内容,直到他们对弹出窗体表示“是”。我怎样才能做到这一点?窗体关闭事件
窗体关闭事件
回答
为了获得我想要的确切行为,我在基本关闭事件中添加了两个事件。一个在检查后立即执行,另一个在执行代码后执行。然后,我将继承的类上的FormClosing事件替换为使用这两个事件。这种方法给了我更多的自由,然后只是调用mybase .OnFormClosing
而不是在您的子类中处理事件,重写OnFormClosing方法。然后你可以让基类实现按照它的选择进行。然后做你的东西。
Protected Overrides Sub OnFormClosing(e As System.Windows.Forms.FormClosingEventArgs)
MyBase.OnFormClosing(e)
'my stuff
End Sub
假设你已经在你的基类的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
这两种解决方案都会导致我的程序两次经历关闭事件。这是正常的吗? –
@DNet工程师是的,它将运行基本结束码,然后运行您的继承基础结束码。如果您需要帮助,请发布您的代码,因为我们看不到您的代码是什么样的。 – LarsTech
它与您的发布代码几乎相同。它将执行MessageBox,然后再次显示消息框。我想我可以添加一个布尔值来阻止它第二次在继承类之后通过基类运行 –
- 1. 关闭窗体的事件
- 2. 窗体关闭事件
- 3. 关于窗体关闭事件我puzzeled
- 4. 窗体关闭事件在c#
- 5. DataRecieved事件中的关闭窗体
- 6. C#:关闭excel关闭事件的窗体表格
- 7. VB.NET应用程序触发关闭窗体关闭事件
- 8. 窗口关闭事件
- 9. Extjs窗口关闭事件
- 10. 关于窗口关闭事件的javascript
- 11. 关闭对话框窗体关闭父窗体
- 12. 子窗体关闭时父窗体关闭
- 13. 关闭模式关闭窗体更改
- 14. Windows窗体:关闭,但不关闭
- 15. Windows窗体关闭后不关闭?
- 16. 从子窗体关闭父窗体
- 17. C#通过窗体关闭事件传递对象
- 18. 为什么Close()在加载事件中关闭窗体?
- 19. 如何捕捉窗口关闭事件?
- 20. 跨浏览器窗口关闭事件
- 21. 使用onclick事件关闭JavaScript窗口
- 22. FLTK等待事件关闭窗口
- 23. 捕获窗口关闭事件
- 24. WPF窗口关闭事件用法
- 25. 关闭Pyglet中窗口的事件
- 26. 如何识别窗口关闭事件?
- 27. 陷阱窗口关闭事件
- 28. Access窗体不会关闭
- 29. 窗体关闭帮助
- 30. 用锌关闭窗体
这两种解决方案都会导致我的程序两次关闭关闭事件。这是正常的吗? –