VB.NET組件疊加具體應(yīng)用方法詳解
VB.NET編程語言對于組件的使用是一個比較基礎(chǔ)的應(yīng)用技巧。那么如何才能正確的實現(xiàn)組件的疊加這一功能呢?我們將會在文中給出詳細的操作步驟,希望幫助大家方便理解,充分掌握這一應(yīng)用技巧。#t#
狀態(tài)欄(StatusBar)也是常見、常用的Windows窗體組件,狀態(tài)欄的主要作用是顯示程序的運行狀態(tài)或者做一些特定信息提示的載體。Visual Baisc .Net中的StatusBar是.Net FrameWork SDK中的StatusBar類經(jīng)過實例化產(chǎn)生的。在前面的內(nèi)容中,通過定義這些組件的相關(guān)屬性來觸發(fā)繪制這些組件的相應(yīng)事件,在這些相關(guān)事件中再利用各種繪制方法,實現(xiàn)各種個性化的風(fēng)格。
StatusBar類雖然沒有不供程序員繪制它的任何工具,但其組成面板的StatusBarPanel卻提供了Style屬性,Style屬性是和手工繪制StatusBarPanel相關(guān)的一個屬性,當(dāng)Style屬性值為OwnerDraw時,就會觸發(fā)前面內(nèi)容中經(jīng)常遇到的DrawItem事件。通過對StatusBarPanel繪制達到繪制StatusBar的目的。具體的實現(xiàn)方法這里就不介紹了,相信諸位結(jié)合前面的內(nèi)容是可以完成的。本文的主要內(nèi)容探討擴展StatusBar,使得它能夠更直觀、更豐富的做好信息提示的工作。主要的做法是在StatusBar上加上各種Windows窗體組件,使得多個組件能夠組合成一個組件來使用,從而增加StatusBar的顯示方式和內(nèi)容。
一.本文章中的VB.NET組件疊加程序設(shè)計、調(diào)試和運行的環(huán)境:
(1).微軟公司視窗2000服務(wù)器版。
(2).Visual Studio .Net 2003企業(yè)構(gòu)建版,.Net FrameWork SDK 1.1版本號4322。
二.從在Form中增加組件說開去:
當(dāng)在使用Visual Basic .Net開發(fā)WinForm程序中,從【工具箱】往窗體中拖入一個組件,這樣就在程序窗體中增加了一個組件。也許很多開發(fā)者從沒有過多的關(guān)注過這種簡單的操作,其實在此操作背后,系統(tǒng)是做了很多工作的。下面就來詳細了解一下系統(tǒng)為實現(xiàn)此步驟所做的工作。我們通過手工編寫代碼來完成在窗體上增加一個Button組件。為此先完成以下準備步驟:
1. 啟動Visual Studio .Net。
2. 選擇菜單【文件】|【新建】|【項目】后,彈出【新建項目】對話框。
3. 將【項目類型】設(shè)置為【Visual Basic項目】。
4. 將【模板】設(shè)置為【W(wǎng)indows應(yīng)用程序】。
5. 在【名稱】文本框中輸入【在Form中手工增加組件】。
在【位置】的文本框中輸入【E:\VS.NET項目】,然后單擊【確定】按鈕,這樣在“E:\VS.NET項目”目錄中就產(chǎn)生了名稱為“在Form中手工增加組件”的文件夾,并在里面創(chuàng)建了名稱為“在Form中手工增加組件”的項目文件。
6. 把Visual Studio .Net的當(dāng)前窗口切換到Form1.vb的代碼編輯窗口。并在InitializeComponent過程之后添加下列代碼,下列代碼是定義Form1的Load事件,在此事件中實現(xiàn)手工創(chuàng)建組件、設(shè)置組件屬性,并把它加到窗體上:
- Private Sub Form1_Load ( ByVal sender
As Object , ByVal e As System.EventArgs )
Handles MyBase.Load- Dim btnTemp As Button = New Button ( )
- '創(chuàng)建Button
- '以下是設(shè)定此Button各個屬性
- btnTemp.Location = New Point ( 20 , 20 )
- btnTemp.Size = New Size ( 150 , 70 )
- btnTemp.Text = "動態(tài)創(chuàng)建的Button"
- Me.Controls.Add ( btnTemp )
- '在Form上加入此Button
- End Sub
7. 至此手工在Form窗體加入組件的工作就完成了,單擊快捷鍵F5,在程序運行后,窗體中就多了一個Button組件。
可見手工在窗體中增加組件,VB.NET組件疊加一般是三個步驟:首先通過實例化創(chuàng)建一個實例,接著是設(shè)定此實例的相關(guān)屬性,最后通過Control對象的Add方法加入即可。移除加入的組件可以使用Control對象的Remove、RemoveAt或Clear方法。其實在Visual Basic .Net中可以實現(xiàn)多個WinForm組件組合起來使用。一般來說只要組件是容器組件就可以,下面就通過具體示例來介紹其他WinForm組件組合使用的實現(xiàn)方法。
三.在StatusBar上增加ProgressBar:
在很多應(yīng)用程序都會發(fā)現(xiàn)狀態(tài)欄上有進程條,但是其處理方法一般把這幾個組件合并、創(chuàng)建成一個組件,這種方法的確是很好的,但重新創(chuàng)建組件這對很多開發(fā)者來說是困難的,有沒有更簡潔、方便、易操作的實現(xiàn)方法?答案是肯定的。下面方法就是在以上內(nèi)容的基礎(chǔ)上,通過組件的組合完成的。其具體的實現(xiàn)步驟如下:
1. 啟動Visual Studio .Net。
2. 選擇菜單【文件】|【新建】|【項目】后,彈出【新建項目】對話框。
3. 將【項目類型】設(shè)置為【Visual Basic項目】。
4. 將【模板】設(shè)置為【W(wǎng)indows應(yīng)用程序】。
5. 在【名稱】文本框中輸入【組件的疊加使用】。
6. 在【位置】的文本框中輸入【E:\VS.NET項目】,然后單擊【確定】按鈕,這樣在“E:\VS.NET項目”目錄中就產(chǎn)生了名稱為“組件的疊加使用”的文件夾,并在里面創(chuàng)建了名稱為“VB.NET組件疊加”的項目文件。
7. 把Visual Studio .Net的當(dāng)前窗口切換到【Form1.vb(設(shè)計)】窗口,并從【工具箱】中的【W(wǎng)indows窗體組件】選項卡中往Form1窗體中拖入下列組件,并進行相應(yīng)的操作:
一個Button組件,程序中將通過此組件的Click事件完成在狀態(tài)欄上加上一個進程條。
一個StatusBar組件,并在這個StatusBar組件上增加二個StatusBarPanel組件。
8. 把Visual Studio .Net的當(dāng)前窗口切換到Form1.vb的代碼編輯窗口,并在InitializeComponent過程之后添加下列代碼,下列代碼是定義Button1的Click事件,在此事件中將實現(xiàn)創(chuàng)建
- ProgressBar實例,并把此實例加到狀態(tài)欄中,
具體的實現(xiàn)方法請參閱代碼中的注釋:- Private Sub Button1_Click ( ByVal
sender As System.Object , ByVal e
As System.EventArgs ) Handles
Button1.Click- Dim psbTemp As ProgressBar = New
System.Windows.Forms.ProgressBar ( )- '創(chuàng)建并初始化一個ProgressBar實例
- psbTemp.Name = "psbTemp"
- psbTemp.TabIndex = 2
- psbTemp.Value = 20
- psbTemp.Width = StatusBar1.Panels ( 0 ).Width
- psbTemp.Height = StatusBar1.Height
- '以狀態(tài)欄的大小來確定ProgressBar實例大小
- psbTemp.Parent = StatusBar1
- '把狀態(tài)欄組件設(shè)置為進程條組件的父容器
- StatusBar1.Controls.Add ( psbTemp )
- '在狀態(tài)欄上加入進程條
- StatusBar1.SendToBack ( )
- Button1.Enabled = False
- End Sub
9. 至此【組件的疊加使用】項目的全部工作就完成了,單擊快捷鍵F5運行程序后,單擊Button1按鈕后,就得到如圖03所示界面:
四.總結(jié):
通過本文可見,VB.NET組件疊加實現(xiàn)起來并不特別困難,首先要了解那些WinForm組件是能夠做為容器組件,一般來說只有是容器組件才能夠加入其他組件。在創(chuàng)建被加入的實例后,要設(shè)定從屬關(guān)系,并根據(jù)實際情況來設(shè)定組件的大小和顯示區(qū)域,最后通過Control對象的Add方法加入即可。諸位可以嘗試在其他組件組合起來使用的解決方法,如在一個Button中再加入另外一個Button,具體的實現(xiàn)方法和本文非常相似,不信您試試看。

















