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



是否可以将一组控件聚集在一起,并能够用一行将其设置为可见,而不必执行每个单独控件的.visible属性?我知道这不会有任何影响,但我希望它看起来整洁,而不是把一个函数和一个充满.visible控件调用的页面混为一谈。

只需在List(Of Control)或数组中对控件进行分组,并使用ForEach-方法或简单的For Each-循环设置Visible属性。

例如:

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)

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

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

实际上,所有这些方法都可以让你不必创建一个新的列表,但也许这样会更好,这样你就可以准确地选择要添加的控件。

最新更新