如何快速掌握VB.NET控件數組
本人很喜歡VB.NET控件數組,在工作中也很喜歡總結關于VB.NET控件數組的經驗教訓,下面就這個問題來詳細說說吧。
一、關于VB.NET控件數組
控件數組”是VB6中一項簡單而實用的技術,通過對控件的簡單拷貝、復制,開發者可以指定一組控件,這些控件具有相同的類型和名稱,共享事件集。使用控件數組可以:
1、允許多個控件共享同一個事件句柄;
2、提供了運行期間增加一個控件的機制;
3、提供了一種方便的組合控件的方法。
VB.NET控件數組的創建不再通過VB6中設計時對控件的簡單拷貝、復制而實現。VB .NET 的事件模型允許任何事件處理程序處理來自多個控件的事件,這使我們能夠編程創建屬于不同類型但共享相同事件的控件組。
二、創建VB.NET控件數組
下面我們創建一個Button類型控件數組:
1、創建“Windows應用程序”類型的工程,添加名為ButtonArray的類,并使該類繼承 System.Collection.CollectionBase 類。System.Collections.CollectionBase類是.NET框架類庫中為集合操作提供抽象的基類,通過對它的繼承可以為我們的 ButtonArray類具備集合增加、刪除、索引的功能。
2、為ButtonArray類添加ParentForm屬性,即控件組所在窗體,創建初始化函數(構造函數);
3、為控件數組類增加AddItem方法,該方法在控件數組類中添加成員;
4、為控件數組類增加RemoveItem方法,該方法在控件數組中刪除一個成員。
- Public Class ButtonArray
- Inherits System.Collections.CollectionBase
- Private ReadOnly ParentForm As System.Windows.Forms.Form
- Public Sub New(ByVal pForm As System.Windows.Forms.Form)
- ParentForm = pForm
- End Sub
- Default Public ReadOnly Property Item(ByVal index As Integer)
As System.Windows.Forms.Button- Get
- Return Me.List.Item(index)
- 'ButtonArray的List 屬性從CollectionBase 繼承
- End Get
- End Property
- Public Sub AddItem()
- Dim btnItem As New System.Windows.Forms.Button()
- Me.List.Add(btnItem)
- ParentForm.Controls.Add(btnItem)
- '向窗體中增加控件
- btnItem.Tag = Me.Count'Count屬性從CollectionBase 繼承
- btnItem.Top = Me.Count * 30
- btnItem.Left = 200
- btnItem.Text = "Button" & Me.Count.ToString
- AddHandler btnItem.Click, AddressOf btnItem_Click
- '綁定事件處理程序
- End Sub
- Public Sub RemoveItem()
- If Me.Count > 0 Then
- ParentForm.Controls.Remove(Me(Me.Count - 1))
- Me.List.RemoveAt(Me.Count - 1)
- End If
- End Sub
- Public Sub btnItem_Click(ByVal sender As Object,
ByVal e As System.EventArgs)- '在這里編寫控件數組對點擊事件的響應
- '例如:
- MsgBox("點擊:" & sender.GetType().ToString &
CType(CType(sender, Button).Tag, String))- End Sub
- End Class
【編輯推薦】

















