熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Visual Basic.NET中組件的疊加使用

2013-11-13 10:19:26  來源: .NET編程 

  狀態欄(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:\VSNET項目】然後單擊【確定】按鈕這樣在E:\VSNET項目目錄中就產生了名稱為在Form中手工增加組件的文件夾並在裡面創建了名稱為在Form中手工增加組件的項目文件
  
   把Visual Studio Net的當前窗口切換到Formvb的代碼編輯窗口並在InitializeComponent過程之後添加下列代碼下列代碼是定義Form的Load事件在此事件中實現手工創建組件設置組件屬性並把它加到窗體上
  
  Private Sub Form_Load ( ByVal sender As Object ByVal e As SystemEventArgs ) Handles MyBaseLoad
  Dim btnTemp As Button = New Button ( )
  創建Button
  以下是設定此Button各個屬性
  btnTempLocation = New Point ( )
  btnTempSize = New Size ( )
  btnTempText = 動態創建的Button
  MeControlsAdd ( btnTemp )
  在Form上加入此Button
  End Sub
  
   至此手工在Form窗體加入組件的工作就完成了單擊快捷鍵F在程序運行後窗體中就多了一個Button組件具體如圖所示
  
 

  
【在Form中手工增加組件】的運行界面

  
  可見手工在窗體中增加組件一般是三個步驟首先通過實例化創建一個實例接著是設定此實例的相關屬性最後通過Control對象的Add方法加入即可移除加入的組件可以使用Control對象的RemoveRemoveAt或Clear方法其實在Visual Basic Net中可以實現多個WinForm組件組合起來使用一般來說只要組件是容器組件就可以下面就通過具體示例來介紹其他WinForm組件組合使用的實現方法
  
  三.在StatusBar上增加ProgressBar
  
  在很多應用程序都會發現狀態欄上有進程條但是其處理方法一般把這幾個組件合並創建成一個組件這種方法的確是很好的但重新創建組件這對很多開發者來說是困難的有沒有更簡潔方便易操作的實現方法?答案是肯定的下面方法就是在以上內容的基礎上通過組件的組合完成的其具體的實現步驟如下
  
   啟動Visual Studio Net
  
   選擇菜單【文件】|【新建】|【項目】後彈出【新建項目】對話框
  
   將【項目類型】設置為【Visual Basic項目】
  
   將【模板】設置為【Windows應用程序】
  
   在【名稱】文本框中輸入【組件的疊加使用】
  
   在【位置】的文本框中輸入【E:\VSNET項目】然後單擊【確定】按鈕這樣在E:\VSNET項目目錄中就產生了名稱為組件的疊加使用的文件夾並在裡面創建了名稱為組件的疊加使用的項目文件
  
   把Visual Studio Net的當前窗口切換到【Formvb(設計)】窗口並從【工具箱】中的【Windows窗體組件】選項卡中往Form窗體中拖入下列組件並進行相應的操作
  
  一個Button組件程序中將通過此組件的Click事件完成在狀態欄上加上一個進程條
  
  一個StatusBar組件並在這個StatusBar組件上增加二個StatusBarPanel組件
  
  並按照圖所示來設定組件的屬性和位置
  
 

  
【組件的疊加使用】項目的設計界面

  
   把Visual Studio Net的當前窗口切換到Formvb的代碼編輯窗口並在InitializeComponent過程之後添加下列代碼下列代碼是定義Button的Click事件在此事件中將實現創建ProgressBar實例並把此實例加到狀態欄中具體的實現方法請參閱代碼中的注釋
  
  Private Sub Button_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles ButtonClick
  Dim psbTemp As ProgressBar = New SystemWindowsFormsProgressBar ( )
  創建並初始化一個ProgressBar實例
  psbTempName = psbTemp
  psbTempTabIndex =
  psbTempValue =
  psbTempWidth = StatusBarPanels ( )Width
  psbTempHeight = StatusBarHeight
  以狀態欄的大小來確定ProgressBar實例大小
  psbTempParent = StatusBar
  把狀態欄組件設置為進程條組件的父容器
  StatusBarControlsAdd ( psbTemp )
  在狀態欄上加入進程條
  StatusBarSendToBack ( )
  ButtonEnabled = False
  End Sub
  
   至此【組件的疊加使用】項目的全部工作就完成了單擊快捷鍵F運行程序後單擊Button按鈕後就得到如圖所示界面
  

  
【組件的疊加使用】的運行界面

  
  四.總結
  
  通過本文可見組件之間的組合使用實現起來並不特別困難首先要了解那些WinForm組件是能夠做為容器組件一般來說只有是容器組件才能夠加入其他組件在創建被加入的實例後要設定從屬關系並根據實際情況來設定組件的大小和顯示區域最後通過Control對象的Add方法加入即可諸位可以嘗試在其他組件組合起來使用的解決方法如在一個Button中再加入另外一個Button具體的實現方法和本文非常相似不信您試試看
From:http://tw.wingwit.com/Article/program/net/201311/13243.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.