在 VB.NET 中使用控件数组
2009-10-30 08:48:40|分类:默认分类|标签:|举报|字号大中小订阅
http://www.cnblogs.com/yunbo/archive/2009/08/13/1545657.html
控件数组是位于一个窗体上共享同一名称的一组同种类型控件。普通控件仅使用名称就可以识别,而引用
控件数组中的成员则需要同时使用名称和索引。开发人员在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 中的事件模型允许任何事件处理程序都可以处理来自多
个控件的事件,这就允许创建属于不同类型但共享相同事件的控件组。
所谓控件集合是指包含在一个容器中的所有控件的总和,能够创建控件集合的容器有:
Form、Panel、GropBox 等。程序运行时,可以通过访问容器的 Control 属性来得到该容器中的所有控件。
下面将演示如何通过控件集合来使用控件数组:
一、直接使用 Form 容器的控件集合来使用控件数组:
建立一个 VB.NET 项目,在 Form1 中添加三个 TextBox 控件,名称分别为:
TextBox1、TextBox2、TextBox3,一个 Button 控件。
双击 Button,输入如下代码:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
‘下面的语句是通过数组元素的下标来访问 Form 中的每一个元素。
Me.Controls.Item(0).Text = "集合中的第一个元素"
Me.Controls.Item(1).Text = "集合中的第二个元素"
Me.Controls.Item(2).Text = "集合中的第三个元素"
Me.Controls.Item(3).Text = "集合中的第四个元素"
End Sub
运行项目后,点击 Button,看到的结果是:Form1 中的所有控件(包括 Button 自己)的 Text 属性都被修
改了,同时还发现,最后加入的的控件变成了集合中的第一个元素(下标为 0)。这个结果说明:
Form1 中的所有控件已经自动构成了一个控件集合(控件数组),这个特点使得建立控件数组变得非常简
单。
在访问这些控件时,除了可以通过控件名称直接访问外,还可以通过 Contro.Item(n)属性按下标访问集合
中的每一个控件;
集合中控件的类型可以不相同,这点和 VB6.0 完全不同;
集合中的下标顺序是按照加入控件的顺序倒排的;
VB.NET 中控件数组的特点让人稍感不适的是,控件数组的下标是按加入顺序的倒排续产生的,但程序员
完全可以改变这个顺序:在代码编辑窗中点击“#Region " Windows 窗体设计器生成的代码”旁边的“+”号,
代码展开后,找到如下代码: