a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

.NET實現父窗體關閉而不影響子窗體的方法

2020-01-24 02:36:03
字體:
來源:轉載
供稿:網友

一般而言,在傳統的VB6中父子窗體(諸如“閃屏”窗體是“父窗體”加載內容,然后啟動自動關閉,啟動主窗體,是子窗體)的交互中,我們只需按照這樣的邏輯“按部照搬”地書寫即可(假設“閃屏”窗體設置為啟動窗體):

SplashScreen.Close()MainForm.Show()

但是在VB.NET或者C#中卻不能這樣寫。因為這樣寫的結果是閃屏窗體“一閃而過”,接著啥也不會出現了。

究其原因,是因為NET中一切都是“類”――閃屏窗體是一個類,這個類內部的某個事件內部引用了“主窗體”這個類,并且把它創造出來。現在你突然間關閉了“閃屏”窗體,意味著創建這個“主窗體”的UI線程被終止,自然屬于這個類內部的所有其它引用類也就成了“無米之炊”――皮之不存,毛怎焉附?因此兩個窗體“一先一后”被關閉了。

解決此類問題的方法在于分離兩個窗體的創建線程――不讓主窗體通過閃屏窗體UI進行創建。干脆創建一個前臺Thread(不能把IsBackGround設置為true,因為這樣會隨著閃屏窗體關閉而自行關閉!),然后在Thread內部的委托中使用Application.Run(new 一個窗體實例))。

至于VB.NET中,除了可以用以上方法,還可以直接右鍵項目,做如下設置:

“關閉模式”是指代用何種方式關閉全部的程序(窗體)。默認“當啟動窗體關閉”時(意味著哪個窗體是啟動窗體,它關閉了,其余窗體都跟著自動關閉)。當然您也可以選擇“最后一個窗體關閉時”,這就意味著只有最后的窗體關閉的時候才是全部窗體關閉。因此應該選這項。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美一区二区视频 | 亚欧色视频| 日本视频免费看 | 中文精品一区二区三区 | 成人欧美一区二区三区黑人孕妇 | 麻豆精品国产91久久久久久 | 日韩一区在线视频 | 国产区免费观看 | 国产精品久久久久久影院8一贰佰 | 久久精品日产高清版的功能介绍 | 亚洲一区二区三区四区在线观看 | 国产一区二区三区四区在线观看 | 精品一区电影国产 | 精品视频在线观看 | 日本一级毛片视频 | 日本一区二区三区免费观看 | 国产第一区在线观看 | 国产精品国产三级国产专播品爱网 | 国产精品不卡 | 日本一本不卡 | 亚洲毛片在线观看 | 久久国精品 | 国产免费一区二区三区 | 99热这里有精品 | 久久精品成人av | 成人一区二区三区久久精品嫩草 | 国产区一二 | 亚洲成人黄色网 | 超碰免费在线观看 | 日韩在线短视频 | 久久久久国产精品一区二区三区 | 日韩欧美影院 | 成人天堂噜噜噜 | 久久精品黄色 | 国产乱码精品一区二区 | 日韩色综合| 裸体喂奶一级裸片 | 成人在线视频观看 | 一区二区日本 | 国产中文一区二区三区 | 成人欧美一区二区三区白人 |