日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
VB.NET控件數(shù)組正確使用方法分析

VB.NET編程語言的出現(xiàn),為開發(fā)人員帶來了非常大的好處。我們今天將會學(xué)到其中一個(gè)比較重要的知識點(diǎn),VB.NET控件數(shù)組的相關(guān)知識。VB.NET控件數(shù)組是位于一個(gè)窗體上共享同一名稱的一組同種類型控件。普通控件僅使用名稱就可以識別,而引用控件數(shù)組中的成員則需要同時(shí)使用名稱和索引。開發(fā)人員在 Visual Basic 6.0 以及更早的版本中使用控件數(shù)組主要有以下三個(gè)理由: #t#

1. 在循環(huán)中訪問數(shù)組中控件的屬性。

2. 向窗體動態(tài)添加新控件。

3. 允許一個(gè)事件例程與多個(gè)控件連接 。

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

所謂控件集合是指包含在一個(gè)容器中的所有控件的總和,能夠創(chuàng)建控件集合的容器有:Form、Panel、GropBox等。程序運(yùn)行時(shí),可以通過訪問容器的Control屬性來得到該容器中的所有控件。

下面將演示如何通過控件集合來使用控件數(shù)組:

一、 直接使用Form容器的控件集合來使用VB.NET控件數(shù)組:

建立一個(gè)VB.NET項(xiàng)目,在Form1中添加三個(gè)TextBox控件,名稱分別為:TextBox1、TextBox2、TextBox3,一個(gè)Button控件。
雙擊Button,輸入如下代碼:

 
 
 
  1. Private Sub Button1_Click(ByVal sender 
    As System.Object, ByVal e As System.
    EventArgs) Handles Button1.Click
  2. ‘下面的語句是通過數(shù)組元素的下標(biāo)
    來訪問Form中的每一個(gè)元素。
  3. Me.Controls.Item(0).Text = "集合中的第一個(gè)元素"
  4. Me.Controls.Item(1).Text = "集合中的第二個(gè)元素"
  5. Me.Controls.Item(2).Text = "集合中的第三個(gè)元素"
  6. Me.Controls.Item(3).Text = "集合中的第四個(gè)元素"
  7. End Sub

運(yùn)行項(xiàng)目后,點(diǎn)擊Button,看到的結(jié)果是:Form1中的所有控件(包括Button自己)的Text屬性都被修改了,同時(shí)還發(fā)現(xiàn),最后加入的的控件變成了集合中的第一個(gè)元素(下標(biāo)為0)。這個(gè)結(jié)果說明:

Form1中的所有控件已經(jīng)自動構(gòu)成了一個(gè)控件集合(控件數(shù)組),這個(gè)特點(diǎn)使得建立控件數(shù)組變得非常簡單。

在訪問這些控件時(shí),除了可以通過控件名稱直接訪問外,還可以通過Contro.Item(n)屬性按下標(biāo)訪問集合中的每一個(gè)控件;

集合中控件的類型可以不相同,這點(diǎn)和VB6.0完全不同;

集合中的下標(biāo)順序是按照加入控件的順序倒排的;

VB.NET控件數(shù)組的特點(diǎn)讓人稍感不適的是,控件數(shù)組的下標(biāo)是按加入順序的倒排續(xù)產(chǎn)生的,但程序員完全可以改變這個(gè)順序:在代碼編輯窗中點(diǎn)擊“#Region " Windows 窗體設(shè)計(jì)器生成的代碼”旁邊的“+”號,代碼展開后,找到如下代碼:

 
 
 
  1. Me.Controls.Add(Me.Button1)
  2. Me.Controls.Add(Me.TextBox3)
  3. Me.Controls.Add(Me.TextBox2)
  4. Me.Controls.Add(Me.TextBox1)

這個(gè)代碼順序就是控件數(shù)組的下標(biāo)順序,只要改變這個(gè)順序就可以改變控件數(shù)組中每個(gè)以元素的下標(biāo)。

在Form中構(gòu)成控件數(shù)組非常方便,但也有一個(gè)小問題:一般來說,F(xiàn)orm中的控件往往有很多種,系統(tǒng)建立控件集合的時(shí)候?qū)哑渲械乃锌丶旁谕粋€(gè)集合中,這樣一來,程序員在寫代碼的時(shí)候有可能將每一個(gè)控件的下標(biāo)混淆,為了解決這個(gè)問題,可以用Panel容器來根據(jù)需要將某類控件建立成控件數(shù)組,也就避免了上述問題。

建立的方法非常簡單:只需要在Form中添加一個(gè)Panel控件,然后將需要建立VB.NET控件數(shù)組的控件加入其中即可,然后用:Panel.Control.Item(n)來訪問其中的每一個(gè)控件。

二、 用代碼建立控件集合。

建立一個(gè)VB.NET項(xiàng)目,在Form中添加三個(gè)TextBox和一個(gè)Button控件,在代碼編輯窗口中輸入如下代碼:

 
 
 
  1. Dim TextboxArray As New ArrayList
  2. ‘定義一個(gè)數(shù)組例表
  3. Private Sub BiuldTextBoxArray()
  4. ‘過程用來將Form上的三個(gè)TextBox加入
    到數(shù)組例表中
  5. TextboxArray.Add(TextBox1)
  6. TextboxArray.Add(TextBox2)
  7. TextboxArray.Add(TextBox3)
  8. End Sub
  9. ‘讓Form在啟動的時(shí)候?qū)⑷齻€(gè)TextBox
    控件加入到數(shù)組例表中,構(gòu)成控件數(shù)組。
  10. Private Sub Form1_Load(ByVal 
    sender As System.Object, ByVal e
     As System.EventArgs) Handles 
    MyBase.Load
  11. BiuldTextBoxArray()
  12. End Sub
  13. ‘編寫B(tài)utton點(diǎn)擊事件代碼,利用控件
    數(shù)組訪問三個(gè)TextBox控件
  14. Private Sub Button1_Click(ByVal 
    sender As System.Object, ByVal e 
    As System.EventArgs) Handles Button1.Click
  15. TextboxArray(0).text = "文本框第一個(gè)元素"
  16. TextboxArray(1).text = "文本框第二個(gè)元素"
  17. TextboxArray(2).text = "文本框第三個(gè)元素"
  18. End Sub

運(yùn)行工程,點(diǎn)擊Button,發(fā)現(xiàn)三個(gè)TextBox都被修改了,效果和前面的方法一樣。

三、 在程序中動態(tài)添加VB.NET控件數(shù)組。

前面定義的控件數(shù)組都是在設(shè)計(jì)階段完成的,它要求,控件數(shù)組中的控件數(shù)量必須已知,也叫靜態(tài)控件數(shù)組;但很多時(shí)候要求,控件數(shù)組中的控件數(shù)量要用程序的某些運(yùn)行情況來確定,這就要求,控件數(shù)組中的控件要能實(shí)現(xiàn)動態(tài)添加。

建立一個(gè)VB.NET工程,在Form上添加兩個(gè)Button,其中,Button1用來添加動態(tài)控件數(shù)組;Button2用來修改數(shù)組中每個(gè)控件的屬性。
在代碼編輯窗口中輸入如下代碼:

 
 
 
  1. Dim List As New ArrayList
  2. ‘定義一個(gè)例表對象,用來集合數(shù)組控件
  3. Private Sub Button1_Click(ByVal 
    sender As System.Object, ByVal e 
    As System.EventArgs) Handles 
    Button1.Click
  4. Dim i As Integer
  5. For i = 0 To 4 ‘利用循環(huán)語句動態(tài)加
    入控件數(shù)組。
  6. Dim FirstTextBox As New TextBox
  7. ‘定義文本框?qū)ο?
  8. Me.Controls.Add(FirstTextBox)
  9. ‘將一個(gè)文本框控件加入到Form上
  10. List.Add(FirstTextBox)
  11. ‘將文本框控件加入到例表集合中
  12. List.Item(i).top = i * List.Item(i).
    height + 20 ‘修改新加入控件在Form上的位置
  13. List.Item(i).left = 100
  14. FirstTextBox.TabIndex = i
  15. ‘修改新加入控件的TabIndex值
  16. List.Item(i).text = "TextBox" 
    & i.ToString ‘修改默認(rèn)文本。
  17. Next
  18. End Sub

用循環(huán)來訪問動態(tài)VB.NET控件數(shù)組中的控件。

 
 
 
  1. Private Sub Button2_Click(ByVal 
    sender As System.Object, ByVal e
     As System.EventArgs) Handles 
    Button2.Click
  2. Dim i As Integer
  3. For i = 0 To 4
  4. List.Item(i).text = "第 "
     & i.ToString & " 個(gè)元素"
  5. Next
  6. End Sub

運(yùn)行項(xiàng)目,先點(diǎn)擊Button1,F(xiàn)orm上將出現(xiàn)5個(gè)文本框,然后再點(diǎn)擊Button2,修改這五個(gè)文本框的Text屬性。

從這個(gè)實(shí)例看出,VB.NET中動態(tài)加入控件數(shù)組與在VB6.0中實(shí)現(xiàn)動態(tài)數(shù)組有一個(gè)顯著的不同:VB6.0中必須要有一個(gè)靜態(tài)的“控件種子”,而在VB.NET中已經(jīng)不需要了。

四、 VB.NET控件數(shù)組的事件響應(yīng)。

控件數(shù)組的最重要的特色之一就是讓一組控件響應(yīng)同一個(gè)事件,在事件例程中接收控件具體某控件的Index值來分別處理處理具體問題,這點(diǎn)已經(jīng)在VB6.0中表現(xiàn)得淋漓盡致了,它在VB.NET中同樣可以實(shí)現(xiàn),只不過實(shí)現(xiàn)方式有了變化。由于在容器中的每一個(gè)控件只要不作特殊處理,都會自動構(gòu)成了控件集合,這樣,只要對原有的事件例程作少量修改,就可以非常方便的實(shí)現(xiàn)用一個(gè)事件例程響應(yīng)某個(gè)集合中所有控件產(chǎn)生的事件。

下面演示實(shí)現(xiàn)用同一個(gè)例程來處理兩個(gè)Button和一個(gè)TextBox發(fā)出的Click事件。

建立一個(gè)VB.NET項(xiàng)目,在Form上添加兩個(gè)Button,和一個(gè)TextBox。

在代碼編輯窗口中點(diǎn)擊“#Region " Windows 窗體設(shè)計(jì)器生成的代碼”旁邊的“+”號,代碼展開后,找到如下代碼并調(diào)整為下面的順序:

 
 
 
  1. Me.Controls.Add(Me.TextBox1)
  2. Me.Controls.Add(Me.Button1)
  3. Me.Controls.Add(Me.Button2)

輸入如下代碼:

 
 
 
  1. Private Sub mControl_Click(ByVal 
    sender As System.Object, ByVal e 
    As System.EventArgs) Handles Button1.
    Click, Button2.Click, TextBox1.Click
  2. Select Case sender.tabindex
  3. Case 0
  4. MessageBox.Show("你點(diǎn)擊了 Button1 按鈕")
  5. Case 1
  6. MessageBox.Show("你點(diǎn)擊了 Button2 按鈕")
  7. Case 2
  8. MessageBox.Show("你點(diǎn)擊了 TextBox1 按鈕")
  9. End Select
  10. End Sub

在這段VB.NET控件數(shù)組使用代碼中:Private Sub mControl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, TextBox1.Click 是一個(gè)自定義事件,在Handles后面的語句表示:該例程將響應(yīng)Button1, Button2, TextBox1控件發(fā)出的Click事件,如果還有其他控件,也可以放在后面,每一個(gè)控件名稱用“,”號隔開。
運(yùn)行項(xiàng)目,分別點(diǎn)擊Form上面的三個(gè)控件就能體會到它的用法。


本文名稱:VB.NET控件數(shù)組正確使用方法分析
本文鏈接:http://m.5511xx.com/article/coeigsg.html