计算并获取 VB.NET 中选中复选框的所有值
Count and get all the value of checked checkboxes in VB.NET
假设我有一个表单,在我的表单下面有一个面板,在面板下面有一个组框,在组框下面有另一个面板,在这个面板下面有多个复选框,现在,我如何计算选中了多少个复选框以及如何获取选中复选框的值并将其放入数组列表中。我有密码,但不起作用。
我的代码:
Dim list As New ArrayList
Dim count As Integer
count = 0
If TypeOf element Is CheckBox Then
If cb.Checked Then
list.Add(cb.Text)
'End If
Else
For Each childElement In element.Controls
count += 1
Next
End If
MsgBox(count)
MsgBox(list)
非常感谢!任何帮助将不胜感激。对不起,你的英语不好。
Dim chk As CheckBox
For Each c As Control In thePanel.Controls
if Typeof c is CheckBox then
count += 1 // to count check boxes
chk = Ctype(c, Checkbox)
if chk.Checked Then
list.Add(chk.Text) // to add the text of checkbox to array
End If
End If
Next
遍历内部面板中的所有控件并检查它们是否为复选框。如果是,并且已选中,请增加计数并将文本添加到列表中。我会使用通用 List(Of String) 而不是 ArrayList。
Dim count As Integer
Dim myList As New List(Of String)
For Each cb As CheckBox In panel1.Controls.OfType(Of CheckBox)
If cb.Checked Then
count += 1
myList.Add(cb.Text)
End If
Next
MessageBox.Show(count.ToString)
MessageBox.Show(String.Join(", ", myList))
[编辑] 根据 Plutonix 的建议,代码被简化为使用 Controls.OfType(Of CheckBox)
仅循环遍历 CheckBox 类型的控件,
你可以使用递归来完成。试试这个。
Private Sub getcheckme(ByVal element As Control)
Dim count As Integer
count = 0
If TypeOf element Is CheckBox Then
If DirectCast(element, CheckBox).Checked = True Then
count += 1 'this will count the checked checkboxes
list.Add(element.Text) ' this will add the value of checkboxes into arraylist
End If
Else
For Each childElement In element.Controls
Me.getcheckme(childElement)
Next
End If
End Sub
只需使用以下方式调用它:Me.getcheckme(Me)
假设我有一个表单,在我的表单下面有一个面板,在面板下面有一个组框,在组框下面有另一个面板,在这个面板下面有多个复选框,现在,我如何计算选中了多少个复选框以及如何获取选中复选框的值并将其放入数组列表中。我有密码,但不起作用。
我的代码:
Dim list As New ArrayList
Dim count As Integer
count = 0
If TypeOf element Is CheckBox Then
If cb.Checked Then
list.Add(cb.Text)
'End If
Else
For Each childElement In element.Controls
count += 1
Next
End If
MsgBox(count)
MsgBox(list)
非常感谢!任何帮助将不胜感激。对不起,你的英语不好。
Dim chk As CheckBox
For Each c As Control In thePanel.Controls
if Typeof c is CheckBox then
count += 1 // to count check boxes
chk = Ctype(c, Checkbox)
if chk.Checked Then
list.Add(chk.Text) // to add the text of checkbox to array
End If
End If
Next
遍历内部面板中的所有控件并检查它们是否为复选框。如果是,并且已选中,请增加计数并将文本添加到列表中。我会使用通用 List(Of String) 而不是 ArrayList。
Dim count As Integer
Dim myList As New List(Of String)
For Each cb As CheckBox In panel1.Controls.OfType(Of CheckBox)
If cb.Checked Then
count += 1
myList.Add(cb.Text)
End If
Next
MessageBox.Show(count.ToString)
MessageBox.Show(String.Join(", ", myList))
[编辑] 根据 Plutonix 的建议,代码被简化为使用 Controls.OfType(Of CheckBox)
仅循环遍历 CheckBox 类型的控件,
你可以使用递归来完成。试试这个。
Private Sub getcheckme(ByVal element As Control)
Dim count As Integer
count = 0
If TypeOf element Is CheckBox Then
If DirectCast(element, CheckBox).Checked = True Then
count += 1 'this will count the checked checkboxes
list.Add(element.Text) ' this will add the value of checkboxes into arraylist
End If
Else
For Each childElement In element.Controls
Me.getcheckme(childElement)
Next
End If
End Sub
只需使用以下方式调用它:Me.getcheckme(Me)