我有一個基本窗體類,我有我的論壇繼承。在執行繼承的表單中的代碼之前,是否可以從基本表單執行代碼?我有一個檢查,看看他們是否想關閉基類,我不想執行任何內容,直到他們對彈出窗體表示「是」。我怎樣才能做到這一點?窗體關閉事件
窗體關閉事件
回答
爲了獲得我想要的確切行爲,我在基本關閉事件中添加了兩個事件。一個在檢查後立即執行,另一個在執行代碼後執行。然後,我將繼承的類上的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#通過窗體關閉事件傳遞對象
這兩種解決方案都會導致我的程序兩次關閉關閉事件。這是正常的嗎? –