迭代可用控件并检查是否已启用

时间:2015-12-13 12:23:14

标签: vb.net

我希望迭代GroupBox控件并检查CheckBox是否已选中。实际上我坚持这个:

For Each c In User.GroupBox3.Controls

        If c.GetType.Name = "CheckBox" Then

          If c.Checked = True ..?               

        End If

    Next

如何看到我无法访问.Checked财产,有人知道我该如何理解?

1 个答案:

答案 0 :(得分:1)

关于TypesCheckBox是一个类型,它继承自另一个类型的Control。由于ControlsCollection将项目保存为Control,因此您必须转换为特定的类型才能访问更具体的属性和方法:

长表:

 For Each c As Control In TabPage1.Controls
    ' check if it is the Type we are looking for
    If TypeOf c Is CheckBox Then
        ' convert to desired type, do something
        CType(c, CheckBox).Checked = True
    End If
Next

CTypeControl转换为CheckBox

简表:

For Each c As CheckBox In TabPage1.Controls.OfType(Of CheckBox)()
    c.Checked = True
Next

此版本过滤到给定的类型,因此不需要强制转换。