VB NET控件數(shù)組正確使用方法分析_第1頁
VB NET控件數(shù)組正確使用方法分析_第2頁
VB NET控件數(shù)組正確使用方法分析_第3頁
VB NET控件數(shù)組正確使用方法分析_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、VB NET控件數(shù)組正確使用方法分析VB.NET控件數(shù)組正確使用方法分析2010-05-08 13:16VB.NET編程語言的出現(xiàn),為開發(fā)人員帶來了非常大的好處。我們今天將會學到其中一個比較重要的知識點,VB.NET控件數(shù)組的相關知識。VB.NET控件數(shù)組是位于一個窗體上共享同一名稱的一組同種類型控件。普通控件僅使用名稱就可以識別,而引用控件數(shù)組中的成員則需要同時使用名稱和索引。開發(fā)人員在Visual Basic 6.0以及更早的版本中使用控件數(shù)組主要有以下三個理由:1.在循環(huán)中訪問數(shù)組中控件的屬性。2.向窗體動態(tài)添加新控件。3.允許一個事件例程與多個控件連接。VB.NET控件數(shù)組的使用,極大

2、的方便了開發(fā)人員。然而,剛剛從Visual Basic6.0(以下簡稱VB6.0)過渡到Visual Basic.Net(以下簡稱VB.NET)的初學者卻發(fā)現(xiàn),在VB.NET中似乎不能使用控件數(shù)組了。筆者仔細查閱了VB.NET的MSDN文檔發(fā)現(xiàn),在VB.NET中,確實不再支持控件數(shù)組。原因是,VB.NET對事件模型作了很大的改動,引入了另外一種數(shù)據(jù)類型控件集合模型,使控件數(shù)組沒有存在的必要。就像VB6.0中的控件數(shù)組可以共享事件一樣,VB.NET中的事件模型允許任何事件處理程序都可以處理來自多個控件的事件,這就允許創(chuàng)建屬于不同類型但共享相同事件的控件組。所謂控件集合是指包含在一個容器中的所有控

3、件的總和,能夠創(chuàng)建控件集合的容器有:Form、Panel、GropBox等。程序運行時,可以通過訪問容器的Control屬性來得到該容器中的所有控件。下面將演示如何通過控件集合來使用控件數(shù)組:一、直接使用Form容器的控件集合來使用VB.NET控件數(shù)組:建立一個VB.NET項目,在Form1中添加三個TextBox控件,名稱分別為:TextBox1、TextBox2、TextBox3,一個Button控件。雙擊Button,輸入如下代碼:Private Sub Button1_Click(ByVal sender As System.Object,ByVal eAs System.EventA

4、rgs)Handles Button1.Click'下面的語句是通過數(shù)組元素的下標來訪問Form中的每一個元素。Me.Controls.Item(0).Text="集合中的第一個元素"Me.Controls.Item(1).Text="集合中的第二個元素"Me.Controls.Item(2).Text="集合中的第三個元素"Me.Controls.Item(3).Text="集合中的第四個元素"End Sub運行項目后,點擊Button,看到的結果是:Form1中的所有控件(包括Button自己)的Tex

5、t屬性都被修改了,同時還發(fā)現(xiàn),最后加入的的控件變成了集合中的第一個元素(下標為0)。這個結果說明:Form1中的所有控件已經(jīng)自動構成了一個控件集合(控件數(shù)組),這個特點使得建立控件數(shù)組變得非常簡單。在訪問這些控件時,除了可以通過控件名稱直接訪問外,還可以通過Contro.Item(n)屬性按下標訪問集合中的每一個控件;集合中控件的類型可以不相同,這點和VB6.0完全不同;集合中的下標順序是按照加入控件的順序倒排的;VB.NET控件數(shù)組的特點讓人稍感不適的是,控件數(shù)組的下標是按加入順序的倒排續(xù)產(chǎn)生的,但程序員完全可以改變這個順序:在代碼編輯窗中點擊"#Region"Windo

6、ws窗體設計器生成的代碼"旁邊的"+"號,代碼展開后,找到如下代碼:Me.Controls.Add(Me.Button1)Me.Controls.Add(Me.TextBox3)Me.Controls.Add(Me.TextBox2)Me.Controls.Add(Me.TextBox1)這個代碼順序就是控件數(shù)組的下標順序,只要改變這個順序就可以改變控件數(shù)組中每個以元素的下標。在Form中構成控件數(shù)組非常方便,但也有一個小問題:一般來說,F(xiàn)orm中的控件往往有很多種,系統(tǒng)建立控件集合的時候?qū)哑渲械乃锌丶旁谕粋€集合中,這樣一來,程序員在寫代碼的時候有可能將

7、每一個控件的下標混淆,為了解決這個問題,可以用Panel容器來根據(jù)需要將某類控件建立成控件數(shù)組,也就避免了上述問題。建立的方法非常簡單:只需要在Form中添加一個Panel控件,然后將需要建立VB.NET控件數(shù)組的控件加入其中即可,然后用:Panel.Control.Item(n)來訪問其中的每一個控件。二、用代碼建立控件集合。建立一個VB.NET項目,在Form中添加三個TextBox和一個Button控件,在代碼編輯窗口中輸入如下代碼:Dim TextboxArray As New ArrayList'定義一個數(shù)組例表Private Sub BiuldTextBoxArray()&

8、#39;過程用來將Form上的三個TextBox加入到數(shù)組例表中TextboxArray.Add(TextBox1)TextboxArray.Add(TextBox2)TextboxArray.Add(TextBox3)End Sub'讓Form在啟動的時候?qū)⑷齻€TextBox控件加入到數(shù)組例表中,構成控件數(shù)組。Private Sub Form1_Load(ByVal sender As System.Object,ByVal eAs System.EventArgs)Handles MyBase.LoadBiuldTextBoxArray()End Sub'編寫B(tài)utton點

9、擊事件代碼,利用控件數(shù)組訪問三個TextBox控件Private Sub Button1_Click(ByVal sender As System.Object,ByVal eAs System.EventArgs)Handles Button1.ClickTextboxArray(0).text="文本框第一個元素"TextboxArray(1).text="文本框第二個元素"TextboxArray(2).text="文本框第三個元素"End Sub運行工程,點擊Button,發(fā)現(xiàn)三個TextBox都被修改了,效果和前面的方法一樣

10、。三、在程序中動態(tài)添加VB.NET控件數(shù)組。前面定義的控件數(shù)組都是在設計階段完成的,它要求,控件數(shù)組中的控件數(shù)量必須已知,也叫靜態(tài)控件數(shù)組;但很多時候要求,控件數(shù)組中的控件數(shù)量要用程序的某些運行情況來確定,這就要求,控件數(shù)組中的控件要能實現(xiàn)動態(tài)添加。建立一個VB.NET工程,在Form上添加兩個Button,其中,Button1用來添加動態(tài)控件數(shù)組;Button2用來修改數(shù)組中每個控件的屬性。在代碼編輯窗口中輸入如下代碼:Dim List As New ArrayList'定義一個例表對象,用來集合數(shù)組控件Private Sub Button1_Click(ByVal sender A

11、s System.Object,ByVal eAs System.EventArgs)Handles Button1.ClickDim iAs IntegerFori=0 To 4'利用循環(huán)語句動態(tài)加入控件數(shù)組。Dim FirstTextBox As New TextBox'定義文本框?qū)ο驧e.Controls.Add(FirstTextBox)'將一個文本框控件加入到Form上List.Add(FirstTextBox)'將文本框控件加入到例表集合中List.Item(i).top=i*List.Item(i).height+20'修改新加入控件在Fo

12、rm上的位置List.Item(i).left=100FirstTextBox.TabIndex=i'修改新加入控件的TabIndex值List.Item(i).text="TextBox"&i.ToString'修改默認文本。NextEnd Sub用循環(huán)來訪問動態(tài)VB.NET控件數(shù)組中的控件。Private Sub Button2_Click(ByVal sender As System.Object,ByVal eAs System.EventArgs)Handles Button2.ClickDim iAs IntegerFori=0 To 4

13、List.Item(i).text="第"&i.ToString&"個元素"NextEnd Sub運行項目,先點擊Button1,F(xiàn)orm上將出現(xiàn)5個文本框,然后再點擊Button2,修改這五個文本框的Text屬性。從這個實例看出,VB.NET中動態(tài)加入控件數(shù)組與在VB6.0中實現(xiàn)動態(tài)數(shù)組有一個顯著的不同:VB6.0中必須要有一個靜態(tài)的"控件種子",而在VB.NET中已經(jīng)不需要了。四、VB.NET控件數(shù)組的事件響應。控件數(shù)組的最重要的特色之一就是讓一組控件響應同一個事件,在事件例程中接收控件具體某控件的Index值來分

14、別處理處理具體問題,這點已經(jīng)在VB6.0中表現(xiàn)得淋漓盡致了,它在VB.NET中同樣可以實現(xiàn),只不過實現(xiàn)方式有了變化。由于在容器中的每一個控件只要不作特殊處理,都會自動構成了控件集合,這樣,只要對原有的事件例程作少量修改,就可以非常方便的實現(xiàn)用一個事件例程響應某個集合中所有控件產(chǎn)生的事件。下面演示實現(xiàn)用同一個例程來處理兩個Button和一個TextBox發(fā)出的Click事件。建立一個VB.NET項目,在Form上添加兩個Button,和一個TextBox。在代碼編輯窗口中點擊"#Region"Windows窗體設計器生成的代碼"旁邊的"+"號,代

15、碼展開后,找到如下代碼并調(diào)整為下面的順序:Me.Controls.Add(Me.TextBox1)Me.Controls.Add(Me.Button1)Me.Controls.Add(Me.Button2)輸入如下代碼:Private Sub mControl_Click(ByVal sender As System.Object,ByVal eAs System.EventArgs)Handles Button1.Click,Button2.Click,TextBox1.ClickSelect Case sender.tabindexCase 0MessageBox.Show("你點擊了Button1按鈕")Case 1MessageBox.Show("你點擊了Button2按鈕")Case 2MessageBox.Show("你點擊了TextBox1按鈕")End SelectEnd Sub在這段VB.NET控件數(shù)組使用代碼中:Private Sub mControl_Click(B

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論