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

时间:2017-03-20 19:01:38

标签: vb.net checkbox user-controls dynamically-generated

我开始循环动态创建的Checkbox:

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

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

3 个答案:

答案 0 :(得分:3)

使用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

答案 1 :(得分:2)

我认为你想要做的是:

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

答案 2 :(得分:2)

我会这样做:

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