Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在一个面板和另一个面板中的groupbox内的窗体中取消选中所有复选框_Vb.net_Visual Studio 2010_Checkbox - Fatal编程技术网

Vb.net 在一个面板和另一个面板中的groupbox内的窗体中取消选中所有复选框

Vb.net 在一个面板和另一个面板中的groupbox内的窗体中取消选中所有复选框,vb.net,visual-studio-2010,checkbox,Vb.net,Visual Studio 2010,Checkbox,我已经厌倦了在我的表单中清除另一个面板中的groupbox中的所有复选框。我有一个代码可以清除panel221中表单中的所有复选框 For Each element As Control In Me.Panel221.Controls If TypeOf element Is CheckBox Then DirectCast(element, CheckBox).Checked = False End If Next 我不知道为什么我不能

我已经厌倦了在我的表单中清除另一个面板中的groupbox中的所有复选框。我有一个代码可以清除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

如何清除或取消选中多个groupbox和panel下的所有复选框?

Me。控件只包含直接子项,不包含其子项的子项,依此类推。为了做您想做的事情,您必须使用递归函数:

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.uncheckrCursive(me)