溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

VB.NET中怎么實現(xiàn)窗體嵌套

發(fā)布時間:2021-07-14 13:46:45 來源:億速云 閱讀:239 作者:Leah 欄目:編程語言

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類,這意味著它能被放入另一個窗體的控件集合中,使用如下的邏輯:

  1. Dim f As New 
    frmEmbed2()  

  2. Me.Controls.Add(f)  

  3. 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)知識。

向AI問一下細(xì)節(jié)

免責(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)容。

AI