У вас есть много способов сделать это.
Например, вы можете сохранить коллекцию индексов кнопок, которые вы хотите переключить, и, для события Button.Click
, использовать цикл for each
для измененияих Enabled
статус:
Обратите внимание, что этот код предполагает, что ваши кнопки размещены в форме.Если они находятся внутри другого контейнера (например, панели), используйте имя этого контейнера вместо ссылки Me
.
Private toggleButtons As Integer() = {1, 2, 6, 7, 9}
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
For Each idx As Integer In toggleButtons
Me.Controls("Button" & idx.ToString).Enabled = Not Me.Controls("Button" & idx.ToString).Enabled
Next
End Sub
Во многом аналогично предыдущему примеру, предварительно выбирая кнопки, которые должны переключаться:
Private toggleButtons As Button()
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
toggleButtons = New Button() {Button1, Button2, Button6, Button7, Button9}
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
For Each btn As Button In toggleButtons
btn.Enabled = Not btn.Enabled
Next
End Sub
Вы также можете установить свойство Tag
этих кнопок накакое-то конкретное значение, затем используйте это значение свойства, чтобы отличить их.
Например, установить свойство Tag
кнопок, которые вы хотите переключить на "toggleButton"
:
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
For Each btn As Button In Me.Controls.OfType(Of Button)
If btn.Tag IsNot Nothing AndAlso btn.Tag.ToString().Equals("ToggleButton") Then
btn.Enabled = Not btn.Enabled
End If
Next
End Sub
Или специализированный класс, который знает свои кнопки и как / когда переключать их.
Или реализовать определенный интерфейс (...)