因此,我最近开始考虑自己做一些小程序以使我的工作更轻松一些。但是,许多代码都是重复的,因此想知道是否有一种方法可以使此操作更容易。
下面是我重复执行46次的代码,每次都会更改一些变量,例如GroupBox从1-46开始,ComboBox从1-46开始,然后最后我还要取消选中该GroupBox中的所有RadioButtons。
这是第一个GroupBox:
Private Sub Room105()
Dim rb = GroupBox1.Controls.OfType(Of RadioButton)().
SingleOrDefault(Function(radiobutton) radiobutton.Checked)
Dim value = If(CStr(rb?.Tag), ComboBox1.Text = V1)
If rb?.Tag Is Nothing Then ComboBox1.Text = V1
If ComboBox1.Text = M1 Then
ListView1.Items.Add(GroupBox1?.Tag).SubItems.Add(value)
If rb?.Tag = CO Then
ListView4.Items.Add(GroupBox1?.Tag).SubItems.add(value)
End If
ElseIf ComboBox1.Text = M2 Then
ListView2.Items.Add(GroupBox1?.Tag).SubItems.Add(value)
If rb?.Tag = CO Then
ListView4.Items.Add(GroupBox1?.Tag).SubItems.add(value)
End If
ElseIf ComboBox1.Text = M3 Then
ListView3.Items.Add(GroupBox1?.Tag).SubItems.Add(value)
If rb?.Tag = CO Then
ListView4.Items.Add(GroupBox1?.Tag).SubItems.add(value)
End If
ElseIf ComboBox1.Text = V1 Then
RadioButton1.Checked = False
RadioButton2.Checked = False
RadioButton3.Checked = False
ListView5.Items.Add(GroupBox1?.Tag).SubItems.Add("Vacant")
End If
End Sub
答案 0 :(得分:0)
您可以轻松地修改此函数,以将GroupBox控件(和其他控件)作为该函数的参数:
Private Sub Room105(grpBox As GroupBox, comboBx As ComboBox, lv1 As ListView, lv2 As ListView, lv3 As ListView, lv4 As ListView, lv5 As ListView, rb1 As RadioButton, rb2 As RadioButton, rb3 As RadioButton)
Dim rb = grpBox.Controls.OfType(Of RadioButton)().
SingleOrDefault(Function(radiobutton) radiobutton.Checked)
Dim value = If(CStr(rb?.Tag), comboBx.Text = V1)
If rb?.Tag Is Nothing Then comboBx.Text = V1
If comboBx.Text = M1 Then
lv1.Items.Add(grpBox?.Tag).SubItems.Add(value)
If rb?.Tag = CO Then
ListView4.Items.Add(grpBox?.Tag).SubItems.add(value)
End If
ElseIf comboBx.Text = M2 Then
lv2.Items.Add(GroupBox1?.Tag).SubItems.Add(value)
If rb?.Tag = CO Then
lv4.Items.Add(grpBox?.Tag).SubItems.add(value)
End If
ElseIf comboBx.Text = M3 Then
lv3.Items.Add(grpBox?.Tag).SubItems.Add(value)
If rb?.Tag = CO Then
lv4.Items.Add(grpBox?.Tag).SubItems.add(value)
End If
ElseIf comboBx.Text = V1 Then
rb1.Checked = False
rb2.Checked = False
rb3.Checked = False
lv5.Items.Add(grpBox?.Tag).SubItems.Add("Vacant")
End If
End Sub
然后您将根据需要多次调用此函数,并根据需要切换出不同的控件集:
Room105(GroupBox1, ComboBox1, ListView1, ListView2, ListView3, ListView4, ListView5, RadioButton1, RadioButton2, RadioButton3)
PS:我强烈建议为该控件提供比您在此使用的描述性名称更多的名称。
答案 1 :(得分:0)
当然。如果您为组框创建一个数组,为组合框创建另一个数组,则将对象放在此处,然后可以遍历数组并执行需要执行的操作,然后可以在数组上使用数组代替硬编码值当前索引。