【发布时间】:2022-11-30 20:59:26
【问题描述】:
我正在尝试在清除文本框内容并取消选中所有复选框的表单上实现一个清除所有按钮。问题是需要访问的控件包含在 Groupboxes 中,因此无法通过 Me.Controls 集合访问。我在这里看到了类似的帖子:VB Uncheck all checked checkboxes in forms,但答案似乎比我预期的要复杂。除了在那篇文章中,还有其他更简单的方法吗?
我试过这段代码,在逻辑上对我来说应该有效,但它没有:
'Get textboes and clears them
For Each ctrGroupBoxes As Control In Me.Controls.OfType(Of GroupBox)
For Each ctrControls As Control In ctrGroupBoxes.Controls.OfType(Of TextBox)
ctrControls.Text = ""
Next
Next
'Get checkboxes and unchecks them
For Each ctrGroupBoxes As Control In Me.Controls.OfType(Of GroupBox)
For Each ctrControls As Control In ctrGroupBoxes.Controls.OfType(Of CheckBox)
DirectCast(ctrControls, CheckBox).Checked = False
Next
Next
我知道内部 for 循环是有效的,因为我用它来为表单上的不同按钮单独清除每个 GroupBox。
任何援助将不胜感激。
【问题讨论】:
-
这依赖于在表单级别而不是在其他控件中存在组框。要清除所有内容,您必须遍历表单上的所有内容。这是可能的,但当有用户控件时会变得非常混乱。
标签: vb.net