在for-next中的每个循环上更改变量?

时间:2014-03-11 06:32:16

标签: vb.net variables for-loop textbox

解释我的问题

我正在设计一个程序,它必须从多个变量中获取价值。每个变量首先显式声明为整数。然后,我有一个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

1 个答案:

答案 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)部分)。