如何快速掌握VB.NET控件数组

开发 后端
这里介绍创建VB.NET控件数组,包括介绍System.Collections.CollectionBase类是.NET框架类库中为集合操作提供抽象的基类,通过对它的继承可以为我们的 ButtonArray类具备集合增加、删除、索引的功能。

本人很喜欢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方法,该方法在控件数组中删除一个成员。

  1. Public Class ButtonArray  
  2. Inherits System.Collections.CollectionBase  
  3. Private ReadOnly ParentForm As System.Windows.Forms.Form  
  4.  
  5. Public Sub New(ByVal pForm As System.Windows.Forms.Form)  
  6. ParentForm = pForm 
  7. End Sub  
  8.  
  9. Default Public ReadOnly Property Item(ByVal index As Integer) 
    As System.Windows.Forms.Button  
  10. Get  
  11. Return Me.List.Item(index)   
  12. 'ButtonArray的List 属性从CollectionBase 继承  
  13. End Get  
  14. End Property  
  15.  
  16. Public Sub AddItem()  
  17. Dim btnItem As New System.Windows.Forms.Button()  
  18. Me.List.Add(btnItem)  
  19. ParentForm.Controls.Add(btnItem)  
  20. '向窗体中增加控件  
  21. btnItem.Tag = Me.Count'Count属性从CollectionBase 继承  
  22. btnItem.Top = Me.Count * 30  
  23. btnItem.Left = 200 
  24. btnItem.Text = "Button" & Me.Count.ToString  
  25. AddHandler btnItem.Click, AddressOf btnItem_Click   
  26. '绑定事件处理程序  
  27. End Sub  
  28.  
  29. Public Sub RemoveItem()  
  30. If Me.Count > 0 Then  
  31. ParentForm.Controls.Remove(Me(Me.Count - 1))  
  32. Me.List.RemoveAt(Me.Count - 1)  
  33. End If  
  34. End Sub  
  35.  
  36. Public Sub btnItem_Click(ByVal sender As Object, 
    ByVal e As System.EventArgs)  
  37. '在这里编写控件数组对点击事件的响应  
  38. '例如:  
  39. MsgBox("点击:" & sender.GetType().ToString & 
    CType(CType(sender, Button).Tag, String))  
  40. End Sub  
  41. End Class 

【编辑推荐】

  1. 事例概括VB.NET Display方法
  2. VB.NET水印类整合水印技术
  3. 浅析利用VB.NET启动Smartphone常规方法
  4. 自己动手改写VB.NET内存指针
  5. 概述VB.NET正则表达式简化程序代码
责任编辑:佚名 来源: InfoQ
相关推荐

2009-10-16 10:47:58

VB.NET创建控件数

2009-10-26 14:25:09

VB.NET控件数组

2010-01-12 15:54:47

VB.NET动态控件数

2010-01-18 13:12:43

VB.NET控件数组

2010-01-07 17:10:01

VB.NET控件数组问

2010-01-07 17:00:38

VB.NET控件数组

2009-10-22 13:09:19

VB.NET动态控件数

2010-01-18 19:36:52

VB.NET调整控件

2010-01-11 13:33:07

VB.NET使用数组

2009-11-10 13:43:28

VB.NET Comm

2009-11-02 17:54:44

VB.NET数组

2009-10-28 16:47:26

VB.NET访问数据库

2009-10-23 13:14:38

2009-10-14 16:04:43

VB.NET Noti

2010-01-13 10:53:24

VB.NET控件

2009-10-14 10:19:57

VB.NET Doma

2009-10-20 10:16:24

VB.NET COMB

2010-01-11 15:54:48

VB.NET操作缩放图

2009-10-21 10:05:48

VB.NET Read

2010-01-18 10:13:08

VB.NET获取CPU
点赞
收藏

51CTO技术栈公众号