十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
我是VB.Net 2010,你看看能行不。
成都网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、成都小程序开发、集团成都定制网页设计等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都户外休闲椅等众多领域,积累了大量丰富的经验,同时也获得了客户的一致赞扬!
Public Class Form1
Private MyTextBoxArray As New ArrayList
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
For i = 0 To 8 '利用循环语句动态加入控件数组。
Dim FirstTextBox As New TextBox
'定义文本框对象
Me.Controls.Add(FirstTextBox)
'将一个文本框控件加入到Form上
MyTextBoxArray.Add(FirstTextBox)
'将文本框控件加入到例表集合中
MyTextBoxArray.Item(i).top = i * MyTextBoxArray.Item(i).height + 20 '修改新加入控件在Form上的位置
MyTextBoxArray.Item(i).left = 100
FirstTextBox.TabIndex = i
'修改新加入控件的TabIndex值
MyTextBoxArray.Item(i).text = "TextBox" i.ToString '修改默认文本。
Next
End Sub
End Class
在VB6中有控件数组,在VB.Net中好像没有了。
所谓控件数组,是指同一类控件,名称相同,控件的Index属性为控件数组下标,控件的方法中带有Index参数,用以区别数组中是哪个控件触发的事件。建立控件数组最简洁的方式就是在界面上复制粘贴控件,那时系统就会询问是否建立控件数组。
例如:按钮Command的click事件,会出现:Command_Click(Index As Integer) 按钮控件数组中任何一个按钮单击都会触发该事件,Index的取值来标志数组中具体哪个控件元素触发的该事件。
VB.net中没有控件数组的说法。
替代方法:
·创建一个控件的类型数组: Button[],将所有的button控件创建好后存进去,可以遍历它;
·或将所有要遍历的控件放在一个容器如Panel中,以后遍历这个容器的子控件即可。
----------
你的情况,推荐放在容器中。比如下面就是一个遍历容器的控件,然后找出所有的文本框并修改内容的程序:
//pn 是个 Panel 控件
foreach (Control item in pn.Controls)
{
if (typeof(TextBox) == item.GetType())
{
((TextBox)item).Text = "我是动态修改的!";
}
}
Dim Str(20) As String '20数据元素
Dim Text(20) As TextBox
Dim n As Integer = 0
For Each i In Text
i = New TextBox '实例化
i.Location = New Point(50, n * 20)
Me.Controls.Add(i) '添加窗体
Dim Index As Integer = i.TabIndex '没index属性
Str(n) = Index
i.Text = Str(n) 'str数组值赋值给文本框
n += 1
Next
你这是控件数组?你这明明就是9个不同的 TextBox 控件啊,只不过名字长得像而已。
因为过程的声明段(sub……)后面携带了一个参数index,它代表控件索引。在你的窗体上如果有command1控件数组,单击其中一个就会在运行这段过程的时候将index的值赋为单击的索引数。
您可以试着在窗体上建立一个command1,然后复制粘贴多个,建立控件数组(如有对话框,选是)然后双击任一。写下列代码
private
sub
command1_click(index
as
integer)
index
end
sub
运行,看效果就好了