抱歉,这是一个奇怪而愚蠢的问题,但我需要一个解决方案......
我有 30 个文本框,名为 Txt1、Txt2、Txt3、...、Txt30
我必须在单击按钮时将文本框填充为 Txt1.text = 0..
有什么办法
点击按钮
Dim i as Integer
For i = 1 to 30 '----- Possible in string but don't know if possible in textboxes
Txt(i).text = 0
Next
或者我必须写下所有 30 行,例如
Txt1.text = 0
...
Txt30.text = 0
我不知道这个问题是怎么问出来的,也许问题不恰当。
预先感谢...
最佳答案
如果文本框都包含在表单的 Controls 集合中,那么循环它们真的很容易
For Each(t in Me.Controls.OfType(Of TextBox)())
t.Text = "0"
当然,这种方法的优点是,如果您向表单添加其他文本框,则不必担心。将使用 foreach 循环找到它们,而没有固定的上限。
而且,如果并非所有文本框都应包含在循环中,那么您只需使用要使用的文本框的 Tag 属性即可。例如,如果将 Tag 属性设置为字符串“Y”,则可以更改 foreach 循环以仅查找具有匹配 Tag 属性的控件
For Each t in Me.Controls.OfType(Of TextBox)() _
.Where(Function(x) x.Tag = "Y")
t.Text = "0"
如果所有文本框都包含在同一个容器(表单、组框或面板)中,则上述两种解决方案效果很好,相反,如果这些文本框分散在不同的容器中(一些在组框中,其他在面板中等),则您可以构建一个 List(Of TextBox)
变量,用文本框实例填充它,并在需要时使用它
Dim myTexts = New List(Of TextBox)() From { Txt1, Txt2, Txt3, ....}
并循环这个变量
关于vb.net - 使用 For 循环选择文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39228790/