如何将多个按钮分组为“一个”

时间:2018-10-09 18:28:12

标签: vb.net

我是编码的新手,对于一个项目,我需要写很多这些“块”,通常是字母和数字,然后是用于启用或禁用它们的语句:

a1.Enabled = True
a2.Enabled = True
a3.Enabled = True
a4.Enabled = True
a5.Enabled = True
a6.Enabled = True
a7.Enabled = True
a8.Enabled = True
a9.Enabled = True

我一直在寻找任何想法或帮助,但似乎没有任何效果,我想尝试做的只是一行。

    ablock.Enable = False

或类似的东西。

谢谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您想要一个定义为类成员的数组,如下所示:

Private aBlock() As Button

然后在较早的某个地方,当页面或表单加载时以及在实际创建控件之后,您需要这样的代码:

aBlock = {a1, a2, a3, a4, a5, a6, a7, a8, a9}

首先,表单设计器很难使用数组声明控件,但是您至少可以将它们全部与表单/页面加载项放在同一集合中。

稍后,您将可以运行以下代码:

For Each btn As Button In aBlock
    btn.Enabled = True
Next

或者,如果这些按钮已经属于某个常见的容器,例如Panel或GroupBox,并且假定使用WinForms,则可以执行以下操作:

For Each btn As Button In Panel1.Controls.OfType(Of Button)()
    btn.Enabled = True
Next

答案 1 :(得分:1)

Coehoorn是最好的方法,但是作为初学者,您可能想要最简单的方法,所以我将它提供给您。

您可以让Sub代替您的位置,这样就不必一直写所有按钮的名称。

这是您可以做到的方式:

Private Sub SetABlockEnabled(ByVal isEnabled As Boolean)
    a1.Enabled = isEnabled
    a2.Enabled = isEnabled
    a3.Enabled = isEnabled
    a4.Enabled = isEnabled
    a5.Enabled = isEnabled
    a6.Enabled = isEnabled
    a7.Enabled = isEnabled
    a8.Enabled = isEnabled
    a9.Enabled = isEnabled
End Sub

现在您可以一次管理整个区块:

SetABlockEnabled(True)