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