取消选中面板和另一个面板内组框内表单中的所有复选框
Unchecked all checkbox in a form inside a groupbox inside a panel and another panel
我厌倦了在我的表单中清除另一个面板内的组框内的所有复选框。我有一个代码可以清除 panel221 中我的表单中的所有复选框。
For Each element As Control In Me.Panel221.Controls
If TypeOf element Is CheckBox Then
DirectCast(element, CheckBox).Checked = False
End If
Next
我不知道为什么我不能仅使用此代码清除表单中的所有复选框。
For Each element As Control In Me.Controls
If TypeOf element Is CheckBox Then
DirectCast(element, CheckBox).Checked = False
End If
Next
这是我的表单结构:
-FORM
-PANEL 1
-GroupBox 1
-PANEL 2
-PANEL 3
* Several CheckBox inside another panel
-END OF PANEL 3
-END OF PANEL 2
-END OF GROUPBOX 1
'Another groupbox
-GroupBox 2
-PANEL 4
-PANEL 5
* Several CheckBox inside another panel
-END OF PANEL 5
-END OF PANEL 4
-END OF GROUPBOX 2
-END OF PANEL 1
-END OF FORM
如何清除或取消选中多个组框和面板下的所有复选框?
Me.Controls
仅包含直接子项,不包含其子项的子项等。为了做你想做的事,你必须使用递归函数:
Private Sub UncheckRecursive(ByVal element As Control)
If TypeOf element Is CheckBox Then
DirectCast(element, CheckBox).Checked = False
Else
For Each childElement In element.Controls
Me.UncheckRecursive(childElement)
Next
End If
End Sub
然后你这样称呼它:me.UncheckRecursive(me)
我厌倦了在我的表单中清除另一个面板内的组框内的所有复选框。我有一个代码可以清除 panel221 中我的表单中的所有复选框。
For Each element As Control In Me.Panel221.Controls
If TypeOf element Is CheckBox Then
DirectCast(element, CheckBox).Checked = False
End If
Next
我不知道为什么我不能仅使用此代码清除表单中的所有复选框。
For Each element As Control In Me.Controls
If TypeOf element Is CheckBox Then
DirectCast(element, CheckBox).Checked = False
End If
Next
这是我的表单结构:
-FORM
-PANEL 1
-GroupBox 1
-PANEL 2
-PANEL 3
* Several CheckBox inside another panel
-END OF PANEL 3
-END OF PANEL 2
-END OF GROUPBOX 1
'Another groupbox
-GroupBox 2
-PANEL 4
-PANEL 5
* Several CheckBox inside another panel
-END OF PANEL 5
-END OF PANEL 4
-END OF GROUPBOX 2
-END OF PANEL 1
-END OF FORM
如何清除或取消选中多个组框和面板下的所有复选框?
Me.Controls
仅包含直接子项,不包含其子项的子项等。为了做你想做的事,你必须使用递归函数:
Private Sub UncheckRecursive(ByVal element As Control)
If TypeOf element Is CheckBox Then
DirectCast(element, CheckBox).Checked = False
Else
For Each childElement In element.Controls
Me.UncheckRecursive(childElement)
Next
End If
End Sub
然后你这样称呼它:me.UncheckRecursive(me)