徐恩凡资料:【收】快速掌握VB.NET控件数组
来源:百度文库 编辑:中财网 时间:2024/10/06 11:34:53
一、关于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
VB 控件 二元数组
vb控件数组如何使用
求助控件数组(VB)
vb.net有没有类似vb6.0控件数组的功能
vb.net中数组问题
VB.NET 传数组参数
vb中能否动态增加数组控件?
vb控件数组microsoft internet controls的使用方法
VB编程中,关于控件数组的问题?
请教VB问题. 如何传递控件数组到模块中?
在VB中如何选择一个控件数组
VB实时错误‘340’控件数组元素‘3’不存在
vb中如何用代码来编写控件数组
VB,MSFlexGrid 控件,如何快速清空?
如何使用Winsock控件(VB/VB.NET)
在VB.NET中怎么给数组其中一个赋值
vb.net中"索引超出了数组界限"
vb.net 中动态向listbox控件插入数据
用vb.net编mp3播放器需要什么控件?
如何实现:“print vb.net 中的datagrid控件中的 数据”
vb.net中的DataGrid控件显示不了数据了
vb.net中有类似vb6的flexgrid控件吗
vb.net的MenuItem控件简称(缩写)是什么?
Vb.net 中怎么获取和使用Winsocket 控件?