VB.NET窗體嵌套正確應用法則
VB.NET對于窗體的操作有很多種,編程人員在實際開發中可以根據自己不同的需求來進行自己需要的一種操作。今天我們為大家帶來的則是有關VB.NET窗體嵌套的一些操作方法,希望能夠幫助大家解決一些問題。#t#
.NET框架組件太大了,比任何以前所寫的封裝功能的庫都要大。這樣有好處,因為它大幅削減了建立應用程序所需編寫的代碼,但是也使我們不可能完全了解該框架組件。但是我們很容易從中找到一些技巧。
窗體嵌套
經驗豐富的Visual Basic開發者知道多文檔界面(MDI)應用程序能夠包含子窗體,那些子窗體由MDI父窗體管理。但是如果沒有MDI的能力你怎樣實現包含VB.NET窗體嵌套?例如一個MDI子窗體也可能需要包含另一個窗體。
有時能夠使用用戶控件(UserControl)實現這種功能,但是如果你真的需要把一個窗體嵌套進另一個窗體,有多種方法可以實現。窗體衍生自Control類,這意味著它能被放入另一個窗體的控件集合中,使用如下的邏輯:
- Dim f As New
frmEmbed2()- Me.Controls.Add(f)
- f.Show()
但是很不幸,這段代碼將會導致一個運行時(runtime)異常。為了避免這種異常,該窗體的TopLevel屬性必須設置為False(見下面的代碼)。
- Dim f As New frmEmbed2()
- f.TopLevel = False
- Me.Controls.Add(f)
- f.Show()
VB.NET窗體嵌套有一個標題條(它的顏色是未激活的系統顏色),因此該VB.NET窗體嵌套能在容器窗體內四處拖動。在圖2中,該窗體從它的開始位置(左上角)拖到了右下角。
通常在顯示嵌入的窗體前先設置它的位置。這只需要簡單的設置嵌入窗體的Left和Top屬性。嵌入窗體的位置與容器窗體是相對的。
與MDI子窗體不同,嵌入窗體能覆蓋容器窗體上的控件。圖3顯示了它們的不同。
在右邊的MDI例子中,沒有辦法使按鈕隱藏在子窗體的后面。但是在左邊該按鈕被嵌入窗體覆蓋了。
當窗體***次被嵌入時,它將顯示在容器窗體上的已存在的控件的后面。當它被點擊時,它走向前臺并停留在那兒。這會打擾用戶,但是能通過插入下面的代碼防止這種情況發生:
- f.BringToFront()
VB.NET窗體嵌套可以包含其它的嵌入窗體,沒有實際的限制。