使用一行代码设置一组控件可见?

时间:2013-08-29 14:28:18

标签: vb.net winforms controls visible

是否可以将一组控件聚集在一起,并且能够用一行设置它,而不是必须执行每个单独控件的.visible属性?我知道它不会伤害任何东西,但是希望保持它看起来整洁,而不是一个充满.visible控制调用页面的功能。

2 个答案:

答案 0 :(得分:1)

只需将控件分组到List(Of Control)或数组中,然后使用Visible - 方法或简单ForEach - 循环设置For Each属性。

e.g:

Dim toToggle = {OkButton, CancelButton, ControlPanel, SelectionComboBox}
For Each ctrl in toToggle
    ctrl.Visible = False
Next

Dim toToggle = {OkButton, CancelButton, ControlPanel}.ToList()
toToggle.ForEach(Sub(c) c.Visible = False)

答案 1 :(得分:0)

我喜欢Dominic的解决方案。另一种方法(这取决于你的Winform的布局方式)是将控件分组到一个面板中:

For Each ctrl as Control in MyPanel.Controls
    c.Visible = False
Next

实际上,所有这些方法都可以让您不必创建新列表,但可能会更好,因此您可以精确选择要添加的控件。