我正在设计一个程序,它必须从多个变量中获取价值。每个变量首先显式声明为整数。然后,我有一个for-next循环,其中一个变量将被赋值,每次为不同的textbox
的不同变量。
有25个textbox
,每个循环都应该更改变量以及textbox
。例如,文本框的名称应从textbox1
更改为textbox2
,变量应从a更改为b,然后更改为c,依此类推。
优点是我没有重命名textbox
,而且它们的顺序正确且容易管理。
我面临的问题是,我可以用两个字符串"Textbox" & numvariable & ".text"
来完成,但这将是字符串,而不是文本框控件。
For start = 1 to 10
a = Textbox1.Text 'a should change to b and textbox1 should change to textbox2 on next loop
Next
答案 0 :(得分:1)
所有文本框都属于它们所在表单的控件集合(或者更准确地说是它们所在的容器。例如,它们可以位于面板内)。
您可以使用此控件集合按名称访问控件。
至于变量的枚举,尝试创建一个数组:
Dim cont() As String = {a, b, c, d, e}
For i = 1 To 5
CType(Me.Controls("Textbox" & i.ToString), TextBox).Text = cont(i-1)
Next
从技术上讲,在这种特定情况下你不需要类型转换,因为.Text
属性是由文本框继承的,但它更常见。其他属性可能特定于对象的类型,只有在将集合中的对象转换为正确的类型后才能访问这些属性。
最后要注意,数组以索引0而不是1开始(因此cont(i-1)
部分)。