按钮控件数组
Public Class ButtonArray
Inherits System.Collections.CollectionBase
Private ReadOnly HostForm As System.Windows.Forms.Form
'创建类的构造函数。
' Visual Basic
Public Sub New(ByVal host As System.Windows.Forms.Form)
HostForm = host
'Me.AddNewButton()
End Sub
Public Sub AddNewButton() '?AddHandler aButton.Click, AddressOf ClickHandler
' 创建 Button 类的新实例。
Dim aButton As New System.Windows.Forms.Button
' 将按钮添加到集合的内部列表。
Me.List.Add(aButton)
' 将按钮添加到由 HostForm 字段
' 引用的窗体的控件集合中。
HostForm.Controls.Add(aButton)
' 设置按钮对象的初始属性。
aButton.Top = Count * 25
aButton.Left = 100
aButton.Tag = Me.Count
aButton.Text = "按钮 " & Me.Count.ToString
'将事件与事件处理程序相关联
AddHandler aButton.Click, AddressOf ClickHandler
End Sub
'公开控件数组
Default Public ReadOnly Property Item(ByVal Index As Integer) As _
System.Windows.Forms.Button
Get
Return CType(Me.List.Item(Index), System.Windows.Forms.Button)
End Get
End Property
Public Sub Remove()
' 检查以确保存在要删除的按钮。
If Me.Count > 0 Then
' 从宿主窗体控件集合中删除添加到数组
' 的最后一个按钮。请注意在访问数组时
' 默认属性的使用。
HostForm.Controls.Remove(Me(Me.Count - 1))
Me.List.RemoveAt(Me.Count - 1)
End If
End Sub
'创建公共事件处理程序
Public Sub ClickHandler(ByVal sender As Object, ByVal e As _
System.EventArgs)
MessageBox.Show("您已单击按钮 " & CType(CType(sender, _
Button).Tag, String))
End Sub