我在vb.net中编码并且有3个组,每个组有七个文本框。我需要一种方法来指定我想要一次性更改特定属性的组,以便使大量代码变小。
If x = 1 Then
'Group1'
Textbox1_(x).visible = True
Textbox2_(x).visible = False
'...etc
ElseIf x = 2 Then
'Group2'
Textbox1_(x).visible = True
Textbox2_(x).visible = False
'...etc
ElseIf x = 3 Then
'Group3'
Textbox1_(x).visible = True
Textbox2_(x).visible = False
'...etc
End If
但是如果可能的话,我想要一个单独的陈述来处理每个群体。 希望有意义,谢谢。
答案 0 :(得分:1)
使用tag属性。例如,
' for Group 1
Textbox1.Tag = 1
Textbox2.Tag = 1
Textbox3.Tag = 1
' etc for all of group 1
'for Group 2
Textbox4.Tag = 2
Textbox5.Tag = 2
Textbox6.Tag = 2
' etc for all the rest,
然后找到它们,
Dim con As Textbox
If con.Tag = 1 Then
con.Visible = True
End If
If con.Tag = 2
con.Visible = True
End If
看起来如果您使用单独的If Statements
而不是ElseIf
,它只会使一个组可见。不要使用For Each con In Me.Controls
,因为这样可以让所有群体一次可见或不可见。
答案 1 :(得分:0)
将TextBox控件放入数组中:
Dim boxes(6,2) As TextBox
boxes(0,0) = Textbox1_1
boxes(1,0) = Textbox2_1
boxes(3,0) = Textbox3_1
boxes(4,0) = Textbox4_1
'...
boxes(6,2) = Textbox6_2
在为表单调用InitializeComponent()
之后,代码需要运行一次。
然后你可以这样做:
Me.SuspendLayout()
boxes(0,x).Visible = True
For i As Integer = 1 To 6
boxes(i,x).Visible = False
Next i
Me.ResumeLayout()