您好,登錄后才能下訂單哦!
VB.NET中怎么實現(xiàn)窗體嵌套,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
窗體嵌套
經(jīng)驗豐富的Visual Basic開發(fā)者知道多文檔界面(MDI)應(yīng)用程序能夠包含子窗體,那些子窗體由MDI父窗體管理。但是如果沒有MDI的能力你怎樣實現(xiàn)包含VB.NET窗體嵌套?例如一個MDI子窗體也可能需要包含另一個窗體。
有時能夠使用用戶控件(UserControl)實現(xiàn)這種功能,但是如果你真的需要把一個窗體嵌套進(jìn)另一個窗體,有多種方法可以實現(xiàn)。窗體衍生自Control類,這意味著它能被放入另一個窗體的控件集合中,使用如下的邏輯:
Dim f As New
frmEmbed2()Me.Controls.Add(f)
f.Show()
但是很不幸,這段代碼將會導(dǎo)致一個運(yùn)行時(runtime)異常。為了避免這種異常,該窗體的TopLevel屬性必須設(shè)置為False(見下面的代碼)。
Dim f As New frmEmbed2() f.TopLevel = False Me.Controls.Add(f) f.Show()
VB.NET窗體嵌套有一個標(biāo)題條(它的顏色是未激活的系統(tǒng)顏色),因此該VB.NET窗體嵌套能在容器窗體內(nèi)四處拖動。在圖2中,該窗體從它的開始位置(左上角)拖到了右下角。
通常在顯示嵌入的窗體前先設(shè)置它的位置。這只需要簡單的設(shè)置嵌入窗體的Left和Top屬性。嵌入窗體的位置與容器窗體是相對的。
與MDI子窗體不同,嵌入窗體能覆蓋容器窗體上的控件。圖3顯示了它們的不同。
在右邊的MDI例子中,沒有辦法使按鈕隱藏在子窗體的后面。但是在左邊該按鈕被嵌入窗體覆蓋了。
當(dāng)窗體***次被嵌入時,它將顯示在容器窗體上的已存在的控件的后面。當(dāng)它被點(diǎn)擊時,它走向前臺并停留在那兒。這會打擾用戶,但是能通過插入下面的代碼防止這種情況發(fā)生:
f.BringToFront()
VB.NET窗體嵌套可以包含其它的嵌入窗體,沒有實際的限制。
關(guān)于VB.NET中怎么實現(xiàn)窗體嵌套問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。