如何检查是否选中了动态创建的复选框 (VB.NET)?

How can I check whether dynamically-created Checkboxes are checked (VB.NET)?

我开始循环动态创建的复选框:

For Each cntrl As Control In Me.Controls
    If TypeOf cntrl Is CheckBox Then
        If (cntrl As CheckBox).Checked Then
            'Do Something
        End If
    End If
Next

...但我不知道我需要什么来代替这一行:

If (cntrl As CheckBox).Checked Then

...这只是一个猜测,无法编译。

我想你想做的是:

If DirectCast(cntrl, CheckBox).Checked = True Then

使用 LInQ 可以节省一些代码行:

Sub Test()
    Dim myList as New List(Of CheckBox)
    For Each cbox As CheckBox In Me.Controls.OfType(Of CheckBox).Where(Function(cb) cb.Checked)
        myList.Add(cbox)
    Next
    Msgbox(String.Format("{0} checkboxes were checked!", myList.Count))
End Sub

我会这样做:

Dim con As Checkbox
For Each con In Me.Controls
   If con.Checked = True
      'Do Something
   End If
Next