我有一个基本窗体类,我有我的论坛继承。在执行继承的表单中的代码之前,是否可以从基本表单执行代码?我有一个检查,看看他们是否想关闭基类,我不想执行任何内容,直到他们对弹出窗体表示“是”。我怎样才能做到这一点?窗体关闭事件
窗体关闭事件
回答
为了获得我想要的确切行为,我在基本关闭事件中添加了两个事件。一个在检查后立即执行,另一个在执行代码后执行。然后,我将继承的类上的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. DataRecieved事件中的关闭窗体
- 5. 窗体关闭事件在c#
- 6. GTK上的窗体关闭事件#
- 7. 如何处理窗体关闭事件
- 8. C#:关闭excel关闭事件的窗体表格
- 9. VB.NET应用程序触发关闭窗体关闭事件
- 10. 窗口关闭事件
- 11. Extjs窗口关闭事件
- 12. 从另一窗口窗体关闭事件调用方法。 c#
- 13. 关于窗口关闭事件的javascript
- 14. 在窗体关闭事件中写入文本文件
- 15. C# - 如何关闭主窗体和子窗体(只有当主窗体关闭时子窗口才会关闭)
- 16. 当另一个窗体关闭时关闭窗体
- 17. 关闭对话框窗体关闭父窗体
- 18. 如何关闭主窗体而不关闭子窗体?
- 19. 子窗体关闭时父窗体关闭
- 20. 关闭新窗体关闭另一窗体的消息框
- 21. 为什么Sub Form的'x'关闭按钮事件关闭了VBA Main窗体?
- 22. Windows窗体关闭后不关闭?
- 23. 关闭窗体关闭SQL连接(C#)
- 24. Windows窗体:关闭,但不关闭
- 25. 关闭模式关闭窗体更改
- 26. 的WinForms:子窗体关闭父窗体
- 27. 从子窗体关闭父窗体
- 28. 从另一个窗体关闭窗体
- 29. 呼叫事件,当第二个窗体关闭
- 30. C#通过窗体关闭事件传递对象
这两种解决方案都会导致我的程序两次关闭关闭事件。这是正常的吗? –