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
【vb.net类继承接口 类继承接口需要重写方法吗】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 AddItem(ByVal btnItem As System.Windows.Forms.Button)
Me.List.Add(btnItem)
AddHandler btnItem.Click, AddressOf btnItem_Click '绑定事件处理程序
End Sub
Public Sub RemoveItem()
If Me.Count0 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().ToStringCType(CType(sender, Button).Tag, String))
End Sub
End Class
使用创建的控件数组
在Form1中放置两个按钮Button1、Button2,分别测试控件数组的增添、删除 。
双击Form添加代码:
Public Class Form1
Inherits System.Windows.Forms.Form
……Windows窗体设计器生成的代码……
Dim Buttons As New ButtonArray(Me)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Buttons.AddItem()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Buttons.RemoveItem()
End Sub
End Class
其他的控件数组也可以用类似的方式来实现
例如 Label控件数组
LabelArray.vb代码如下:
Public Class LabelArray
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.Label
Get
Return Me.List.Item(index)' ButtonArray的List 属性从CollectionBase 继承
End Get
End Property
Public Sub AddItem(ByVal btnItem As System.Windows.Forms.Label)
Me.List.Add(btnItem)
AddHandler btnItem.Click, AddressOf btnItem_Click '绑定事件处理程序
End Sub
Public Sub btnItem_Click(ByVal sender As Object, ByVal e As System.EventArgs)
'在这里编写控件数组对点击事件的响应
'例如:
MsgBox("点击:"sender.GetType().ToStringCType(CType(sender, Label).Tag, String))
End Sub
End Class
使用创建的Label控件
在Form1中放置两个按钮Label1、Label2
双击Form添加代码:
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows 窗体设计器生成的代码 "
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的 。
- mongodb修改数据类型 mongodb怎么切换数据库
- mysql 转数值 mysql表转枚举类
- mysql转换字符类型 mysql语句中转义
- mongodb directoryperdb mongodb驱动类作用
- mysql小数用什么数据类型 mysql小数点格式
- redis数据库的使用及原理 redis的数据库类型是
- redis的存取 Redis存long类型
- redis队列处理订单 订单redis数据类型
- mongodb查询字符串字段包含 mongodb字段类型为数组查询
- redis数据类型面试题 redis练习题
