VB.Net没有了控件数组,的确让我这个十分喜欢VB的人,失落了好一阵子,不过好在有网上的这些好文章协助,终于让我学会了利用VB.Net窗体的Contral属性来取得大量变量的方法,在这里也与大家分享一下,呵呵,因为是新手的原因,方法可能会有些笨,不要笑话我哦!
假定在窗体frmTextBoxArray中有30个TextBox输入框(是不很少有这么做的呢?)分别为:TextBox1,TextBox2... ...TextBox30,它们按10个一组,分别放在3个GroupBox中,另外还有一个Button,我们测试一下用简单的方法取得为30个TextBox的输入值。代码如下:
Public Class frmTextBoxArray
Inherits System.Windows.Forms.Form
Dim myValueTxt(29) As String
Dim myMsgWord As String
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
For x As Integer = 0 To 9 '循环取得输入值并赋值给变量数组
myValueTxt(x) = Trim(Me.GroupBox1.Controls.Item(x).Text.ToString) '第1组
myValueTxt(x+10) = Trim(Me.GroupBox2.Controls.Item(x).Text.ToString) '第2组
myValueTxt(x+20) = Trim(Me.GroupBox3.Controls.Item(x).Text.ToString) '第3组
Next
For x As Integer = 0 To 29 '准备Msg内容
myMsgWord = myMsgWord & myValueTxt(x) & Microsoft.VisualBasic.ChrW(13)
Next
MassageBox(myMsgWord,64,"信息!") ’分30行将取到的变量值在消息框中显示
myMsgWord = Nothing
End Sub
End Class
由此可见VB.Net的Contrals属性是将窗体中建立的控件加入到一个控件集中,若使用了GroupBox控件,则每个GroupBox控件中的子控件分别从0开始依次加入,并且先加入的在后,后加入的在前,连GroupBox也可用Contrals的属性进行操作,极大的简化了程序代码,从而也使VB.NET 中的事件模型能允许任何事件处理程序都可以处理来自多个控件的事件,这就允许创建属于不同类型但共享相同事件的控件组。
[此贴子已经被作者于2007-10-1 1:52:09编辑过]