0

我正在为 Uni 做作业,在我的 VB.NET 表单中我有一些复选框,我正在尝试循环并清除它们(我有一个可以清除表单的按钮)

我的问题是,当没有明确告诉 VB 我要使用哪个复选框时,似乎没有可以用来设置复选框状态的属性。例如,我可以去

WineCheckBox.Checked = False

这将选中该框,但我想稍微干燥一下代码,而不必为我拥有的每个复选框重复此操作,这就是我想要做的:

If TypeOf element Is CheckBox Then
    element.Checked = False
End If

我试过使用element.CheckState并且element.Checked两次我都得到“Checked(或 CheckState)不是 System.Windows.Forms.Control 的成员”

我已经查看了我能找到的所有属性,但它们对我来说似乎都没有用......

我错过了什么吗?或者这是不可能的

谢谢

编辑:

这是整个代码块:

'clear the controls
    For Each element As Control In Me.Controls
        If TypeOf element Is TextBox Then
            element.Text = ""
        End If
        If TypeOf element Is CheckBox Then
            element.Checked = False
        End If
    Next
4

2 回答 2

8

你声明element的类型是什么?如果它只是一个,Control那么这是一个CheckBox没有选中属性的基本类型。也许尝试:

If TypeOf element Is CheckBox Then
    DirectCast(element,CheckBox).checked = False
End If
于 2011-03-18T00:16:17.173 回答
2

怎么样:

   For Each element As Control In Me.Controls
        If TypeOf element Is TextBox Then
            element.Text = ""
        End If
        If TypeOf element Is CheckBox Then
            Dim chk As CheckBox = CType(element, CheckBox)
            chk.Checked = False
        End If
    Next
于 2011-04-15T10:29:34.377 回答