我正在为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
答案 0 :(得分:8)
您宣布element
为什么类型?如果它只是Control
,那么这是CheckBox
的基本类型,它没有checked属性。也许试试:
If TypeOf element Is CheckBox Then
DirectCast(element,CheckBox).checked = False
End If
答案 1 :(得分: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