Тумблер включить и отключить все кнопки с помощью одной кнопки - PullRequest
0 голосов
/ 29 января 2019

Я хочу отключить все мои кнопки, используя событие Click другой кнопки, а затем повторно включить их, если я снова нажму эту кнопку.

Я попробовал этот код, но он не прошел:

 Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 
    If Button3.Enabled = True Then
        Button1.Enabled = False
        Button6.Enabled = False
        Button7.Enabled = False
        Button2.Enabled = False
        Button9.Enabled = False
    ElseIf Button3.Enabled = True Then
        Button1.Enabled = True
        Button6.Enabled = True
        Button7.Enabled = True
        Button2.Enabled = True
        Button9.Enabled = True
    End If
End Sub

Ответы [ 2 ]

0 голосов
/ 29 января 2019

У вас есть много способов сделать это.
Например, вы можете сохранить коллекцию индексов кнопок, которые вы хотите переключить, и, для события 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

Или специализированный класс, который знает свои кнопки и как / когда переключать их.
Или реализовать определенный интерфейс (...)

0 голосов
/ 29 января 2019
 Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click    

'use button1 or button6 or button 7 or button2 or button9 for the condition not the button 3 because it is the button that will trigger for enabling and disabling
        If Button1.Enabled = True Then
                    Button1.Enabled = False
                    Button6.Enabled = False
                    Button7.Enabled = False
                    Button2.Enabled = False
                    Button9.Enabled = False

                'in the elseif statement use the disabled buttons like button1 or button6 or button 7 or button2 or button9 for your condition to detect if it is disabled so that it will change its state from being disabled to enable
          ElseIf Button1.Enabled = false Then
                    Button1.Enabled = True
                    Button6.Enabled = True
                    Button7.Enabled = True
                    Button2.Enabled = True
                    Button9.Enabled = True

                End If
    End Sub

Вот моя модификация:

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        If Button5.Enabled = True Then
            Button5.Enabled = False
            Button6.Enabled = False
            Button7.Enabled = False
            Button8.Enabled = False
            Button9.Enabled = False
        ElseIf Button5.Enabled = False Then
            Button5.Enabled = True
            Button6.Enabled = True
            Button7.Enabled = True
            Button8.Enabled = True
            Button9.Enabled = True
        End If
    End Sub

Просмотреть изображение здесь для лучшего понимания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...