最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.NET實(shí)現(xiàn)父窗體關(guān)閉而不影響子窗體的方法

 更新時(shí)間:2014年08月05日 10:21:45   投稿:shichen2014  
這篇文章主要介紹了.NET實(shí)現(xiàn)父窗體關(guān)閉而不影響子窗體的方法,很實(shí)用的功能,需要的朋友可以參考下

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

SplashScreen.Close()
MainForm.Show()

但是在VB.NET或者C#中卻不能這樣寫。因?yàn)檫@樣寫的結(jié)果是閃屏窗體“一閃而過(guò)”,接著啥也不會(huì)出現(xiàn)了。

究其原因,是因?yàn)镹ET中一切都是“類”——閃屏窗體是一個(gè)類,這個(gè)類內(nèi)部的某個(gè)事件內(nèi)部引用了“主窗體”這個(gè)類,并且把它創(chuàng)造出來(lái)?,F(xiàn)在你突然間關(guān)閉了“閃屏”窗體,意味著創(chuàng)建這個(gè)“主窗體”的UI線程被終止,自然屬于這個(gè)類內(nèi)部的所有其它引用類也就成了“無(wú)米之炊”——皮之不存,毛怎焉附?因此兩個(gè)窗體“一先一后”被關(guān)閉了。

解決此類問(wèn)題的方法在于分離兩個(gè)窗體的創(chuàng)建線程——不讓主窗體通過(guò)閃屏窗體UI進(jìn)行創(chuàng)建。干脆創(chuàng)建一個(gè)前臺(tái)Thread(不能把IsBackGround設(shè)置為true,因?yàn)檫@樣會(huì)隨著閃屏窗體關(guān)閉而自行關(guān)閉?。缓笤赥hread內(nèi)部的委托中使用Application.Run(new 一個(gè)窗體實(shí)例))。

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

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

相關(guān)文章

最新評(píng)論

北碚区| 荣昌县| 长宁区| 沁水县| 宁河县| 永济市| 桃园县| 合作市| 阳西县| 抚松县| 望谟县| 来安县| 青海省| 云和县| 资兴市| 无锡市| 嘉黎县| 文成县| 富源县| 沈阳市| 河池市| 盘山县| 宁化县| 长顺县| 永年县| 新安县| 布拖县| 安仁县| 武宣县| 嘉禾县| 阳春市| 潜山县| 囊谦县| 甘肃省| 故城县| 望奎县| 临城县| 富源县| 玉环县| 奎屯市| 钟祥市|