我最近几个月一直在编写bash脚本,但是我需要编写一个Visual Basic Window Forms应用程序并打到墙上。我认为bash毁了我。这可能是显而易见的,但我似乎无法弄明白。
我有一些标签和单选按钮我需要迭代并进行一些检查,而我可以为每一个做这个当然它真的膨胀代码,即20个按钮和20个标签是每个检查40个额外的行。 所以问题是:如果我有例如radiobutton1,radiobutton2,radiobutton3 ......或label1,label2,label3 ......如何使用变量替换引用它们或者是什么解决方法?无论对象类型如何,这都是有用的,因为VB命名的方式。
for i = 1 to 3
t=cstr(i)
if radiobutton# $t %t (t) {t}.Checked= true then "-EXAMPLES"
label# $t %t (t) {t}.Text ="You Clicked Me On"
end if
next
无论如何,我整个上午都在寻找,现在已经有4个小时了,似乎无法找到解决方案。我确实需要能够使用对象的属性等。
答案 0 :(得分:0)
for i = 1 to 3
Dim rb as Radiobutton = CType(Me.controls("RadioButton" & i.ToString), RadioButton)
if rb.Checked = true then
Dim lab as Label = CType(Me.controls("Label" & i.ToString), Label)
lab.Text ="You Clicked Me On"
end if
next
......好吧,我希望我能正确理解你的想法。
这是一种处理不同容器中的单选按钮的方法:
Dim RBlist as List(Of RadioButton)
RBlist.Add(Me.RadioButton1)
RBlist.Add(Me.RadioButton2)
RBlist.Add(Me.RadioButton3)
For Each rb in RBlist
If rb.Checked = True Then
...
End If
Next
或者,如果需要公开迭代,可以像这样编写最后一位:
For ir = 0 to RBlist.Count - 1
If RBlist(ir).Checked = True Then
...
End If
Next
请注意,在向列表添加单选按钮时,放置哪个父容器并不重要。将RadioButtons添加到列表的最佳时间是创建它们。
如果您需要不同的对象(例如Labels,Buttons,NumericUpDowns,...),则必须分别为每个对象创建一个List(Of Object)。还有其他可能的数据结构,但这个结构很简单并且经过验证。