目前我有5个组合框都填充了复选框,当我想取消所有选项时(对于“清除选择”按钮),我使用我在论坛上找到的代码:
For Each CheckBox In grpbox_Hiragana
CheckBox.checked = "false"
首先,我确定这是否是取消选中复选框的正确方法,其次“grpbox_Hiragana”组框会返回以下错误:
Expression的类型为'System.Windows.Forms.GroupBox',它不是集合类型
如果有人能够确认这是正确的做法/帮助修复错误,告诉我为什么不接受组合框会很好。
答案 0 :(得分:1)
如果您在一个组框中包含所有复选框,请使用以下代码:
Dim ChkBox As CheckBox = Nothing
' to unchecked all
For Each xObject As Object In Me.GroupBox1.Controls
If TypeOf xObject Is CheckBox Then
ChkBox = xObject
ChkBox.Checked = False
End If
Next
' to checked all
For Each xObject As Object In Me.GroupBox1.Controls
If TypeOf xObject Is CheckBox Then
ChkBox = xObject
ChkBox.Checked = True
End If
Next
或者您可以使用 CheckedListBox 控制。
答案 1 :(得分:0)
使用较少代码行的替代方案是:
For Each ChkBox As CheckBox In GroupBox1.Controls
ChkBox.Checked = False
Next
顺便提一下,如果您添加了.controls
,那么您的代码就会有用,As CheckBox
只会启用智能感知(并且还会确保它只是处理过的Checkbox)。