vb.net控件组 vb各种控件

vb中控件数组的类型可以不同可以不同 。
开发人员在 Visual Basic 6.0 以及更早的版本中使用控件数组主要有以下三个理由:
1.在循环中访问数组中控件的属性 。
2.向窗体动态添加新控件 。
3.允许一个事件例程与多个控件连接。
控件数组的使用,极大的方便了开发人员 。然而,刚刚从Visual Basic6.0(以下简称VB6.0)过渡到Visual Basic.Net(以下简称VB.NET)的初学者却发现,在VB.NET中似乎不能使用控件数组了 。笔者仔细查阅了VB.NET的MSDN文档发现 , 在 VB.NET 中,确实不再支持控件数组 。原因是,VB.NET对事件模型作了很大的改动 , 引入了另外一种数据类型――控件集合模型,使控件数组没有存在的必要 。就像 VB6.0 中的控件数组可以共享事件一样,VB.NET 中的事件模型允许任何事件处理程序都可以处理来自多个控件的事件,这就允许创建属于不同类型但共享相同事件的控件组 。
VB.net 控件数组你这是控件数组?你这明明就是9个不同的 TextBox 控件啊,只不过名字长得像而已 。
vb.net有没有类似vb6.0控件数组的功能可以实现
首先创建一个Button类型控件数组vb.net控件组:
1、创建“Windows应用程序”类型vb.net控件组的工程vb.net控件组,添加名为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 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

推荐阅读