UserControl关闭事件
生活随笔
收集整理的這篇文章主要介紹了
UserControl关闭事件
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
近來(lái)使用C#編程,需要在主窗體關(guān)閉之前將現(xiàn)在的地圖中的圖層的某一狀態(tài)置為初始狀態(tài),而此方法又需要寫在UserControl自定義控件類之中。但是在繼承UserControl類的事件里,卻找不到合適的事件對(duì)此方法進(jìn)行觸發(fā)。UserControl并沒有定義FormClosing事件。想到兩種辦法:1. 重載自定義控件類的Dispose()方法;(網(wǎng)上剛看到一種解決辦法,說(shuō)是重載IDisposable.Dispose方法,Dispose(True);GC.SuppressFinalize(this);還沒來(lái)得及試過(guò)。)2. this.ParentForm.FormClosing += new FormClosingEventHandler(ParentForm_FormClosing); this.ParentForm屬性直接返回父窗體;而this.Parent屬性返回最直接的父Control,想要通過(guò)此屬性得到父窗體還需要遍歷嵌套的控件層次。但是這兩種方法執(zhí)行的時(shí)候,都會(huì)偶爾使得程序彈出這樣的錯(cuò)誤: “將COM對(duì)象與其基礎(chǔ)RCW分開后不能再使用該對(duì)象”。最后,突發(fā)奇想,想出來(lái)一個(gè)變通的解決辦法:將此方法在程序剛加載運(yùn)行的時(shí)候執(zhí)行,比如注冊(cè)到主窗體的Load事件中,這樣就不會(huì)出現(xiàn)異常了。
?
總結(jié)
以上是生活随笔為你收集整理的UserControl关闭事件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: solid converter pdf解
- 下一篇: PDF文件有密码怎么解除?