狀態欄(StatusBar)也是常見
常用的Windows窗體組件
狀態欄的主要作用是顯示程序的運行狀態或者做一些特定信息提示的載體
Visual Baisc
Net中的StatusBar是
Net FrameWork SDK中的StatusBar類經過實例化產生的
在前面的內容中
通過定義這些組件的相關屬性來觸發繪制這些組件的相應事件
在這些相關事件中再利用各種繪制方法
實現各種個性化的風格
StatusBar類雖然沒有不供程序員繪制它的任何工具
但其組成面板的StatusBarPanel卻提供了Style屬性
Style屬性是和手工繪制StatusBarPanel相關的一個屬性
當Style屬性值為OwnerDraw時
就會觸發前面內容中經常遇到的DrawItem事件
通過對StatusBarPanel繪制達到繪制StatusBar的目的
具體的實現方法這裡就不介紹了
相信諸位結合前面的內容是可以完成的
本文的主要內容探討擴展StatusBar
使得它能夠更直觀
更豐富的做好信息提示的工作
主要的做法是在StatusBar上加上各種Windows窗體組件
使得多個組件能夠組合成一個組件來使用
從而增加StatusBar的顯示方式和內容
一.本文章中的程序設計調試和運行的環境 (
)
微軟公司視窗
服務器版
(
)
Visual Studio
Net
企業構建版
Net FrameWork SDK
版本號
二.從在Form中增加組件說開去 當在使用Visual Basic
Net開發WinForm程序中
從【工具箱】往窗體中拖入一個組件
這樣就在程序窗體中增加了一個組件
也許很多開發者從沒有過多的關注過這種簡單的操作
其實在此操作背後
系統是做了很多工作的
下面就來詳細了解一下系統為實現此步驟所做的工作
我們通過手工編寫代碼來完成在窗體上增加一個Button組件
為此先完成以下准備步驟
啟動Visual Studio
Net
選擇菜單【文件】|【新建】|【項目】後
彈出【新建項目】對話框
將【項目類型】設置為【Visual Basic項目】
將【模板】設置為【Windows應用程序】
在【名稱】文本框中輸入【在Form中手工增加組件】
在【位置】的文本框中輸入【E:\VS
NET項目】
然後單擊【確定】按鈕
這樣在
E:\VS
NET項目
目錄中就產生了名稱為
在Form中手工增加組件
的文件夾
並在裡面創建了名稱為
在Form中手工增加組件
的項目文件
把Visual Studio
Net的當前窗口切換到Form
vb的代碼編輯窗口
並在InitializeComponent過程之後添加下列代碼
下列代碼是定義Form
的Load事件
在此事件中實現手工創建組件
設置組件屬性
並把它加到窗體上
Private Sub Form
_Load ( ByVal sender As Object
ByVal e As System
EventArgs ) Handles MyBase
Load
Dim btnTemp As Button = New Button ( )
創建Button
以下是設定此Button各個屬性
btnTemp
Location = New Point (
)
btnTemp
Size = New Size (
)
btnTemp
Text =
動態創建的Button
Me
Controls
Add ( btnTemp )
在Form上加入此Button
End Sub
至此手工在Form窗體加入組件的工作就完成了
單擊快捷鍵F
在程序運行後
窗體中就多了一個Button組件
具體如圖
所示
圖【在Form中手工增加組件】的運行界面 可見手工在窗體中增加組件
一般是三個步驟
首先通過實例化創建一個實例
接著是設定此實例的相關屬性
最後通過Control對象的Add方法加入即可
移除加入的組件可以使用Control對象的Remove
RemoveAt或Clear方法
其實在Visual Basic
Net中可以實現多個WinForm組件組合起來使用
一般來說只要組件是容器組件就可以
下面就通過具體示例來介紹其他WinForm組件組合使用的實現方法
三.在StatusBar上增加ProgressBar 在很多應用程序都會發現狀態欄上有進程條
但是其處理方法一般把這幾個組件合並
創建成一個組件
這種方法的確是很好的
但重新創建組件這對很多開發者來說是困難的
有沒有更簡潔
方便
易操作的實現方法?答案是肯定的
下面方法就是在以上內容的基礎上
通過組件的組合完成的
其具體的實現步驟如下
啟動Visual Studio
Net
選擇菜單【文件】|【新建】|【項目】後
彈出【新建項目】對話框
將【項目類型】設置為【Visual Basic項目】
將【模板】設置為【Windows應用程序】
在【名稱】文本框中輸入【組件的疊加使用】
在【位置】的文本框中輸入【E:\VS
NET項目】
然後單擊【確定】按鈕
這樣在
E:\VS
NET項目
目錄中就產生了名稱為
組件的疊加使用
的文件夾
並在裡面創建了名稱為
組件的疊加使用
的項目文件
把Visual Studio
Net的當前窗口切換到【Form
vb(設計)】窗口
並從【工具箱】中的【Windows窗體組件】選項卡中往Form
窗體中拖入下列組件
並進行相應的操作
一個Button組件
程序中將通過此組件的Click事件完成在狀態欄上加上一個進程條
一個StatusBar組件
並在這個StatusBar組件上增加二個StatusBarPanel組件
並按照圖
所示來設定組件的屬性和位置
圖【組件的疊加使用】項目的設計界面 把Visual Studio
Net的當前窗口切換到Form
vb的代碼編輯窗口
並在InitializeComponent過程之後添加下列代碼
下列代碼是定義Button
的Click事件
在此事件中將實現創建ProgressBar實例
並把此實例加到狀態欄中
具體的實現方法請參閱代碼中的注釋
Private Sub Button
_Click ( ByVal sender As System
Object
ByVal e As System
EventArgs ) Handles Button
Click
Dim psbTemp As ProgressBar = New System
Windows
Forms
ProgressBar ( )
創建並初始化一個ProgressBar實例
psbTemp
Name =
psbTemp
psbTemp
TabIndex =
psbTemp
Value =
psbTemp
Width = StatusBar
Panels (
)
Width
psbTemp
Height = StatusBar
Height
以狀態欄的大小來確定ProgressBar實例大小
psbTemp
Parent = StatusBar
把狀態欄組件設置為進程條組件的父容器
StatusBar
Controls
Add ( psbTemp )
在狀態欄上加入進程條
StatusBar
SendToBack ( )
Button
Enabled = False
End Sub
至此【組件的疊加使用】項目的全部工作就完成了
單擊快捷鍵F
運行程序後
單擊Button
按鈕後
就得到如圖
所示界面
圖【組件的疊加使用】的運行界面 四.總結 通過本文可見
組件之間的組合使用實現起來並不特別困難
首先要了解那些WinForm組件是能夠做為容器組件
一般來說只有是容器組件才能夠加入其他組件
在創建被加入的實例後
要設定從屬關系
並根據實際情況來設定組件的大小和顯示區域
最後通過Control對象的Add方法加入即可
諸位可以嘗試在其他組件組合起來使用的解決方法
如在一個Button中再加入另外一個Button
具體的實現方法和本文非常相似
不信您試試看
From:http://tw.wingwit.com/Article/program/net/201311/13243.html