Вы должны избавиться от всего этого кода независимо. В зависимости от того, как вы меняете BackColor
из этих Buttons
, в первую очередь, обновление количества извести может быть лучше всего выполнено там. В противном случае вы должны обработать соответствующее событие, например,
Private limeButtonCount As Integer = 0
Private Sub Buttons_BackColorChanged(sender As Object, e As EventArgs) Handles Button3.BackColorChanged,
Button2.BackColorChanged,
Button1.BackColorChanged
If DirectCast(sender, Button).BackColor = Color.Lime Then
limeButtonCount += 1
Else
limeButtonCount -= 1
End If
TextBox1.Text = limeButtonCount.ToString()
End Sub
. Обратите внимание, что в этом коде предполагается, что существует только два возможных значения BackColor
, и что все Buttons
не являются известью по умолчанию. Если ваш сценарий немного сложнее, чем вам, вам может потребоваться немного изменить код, например,
Private limeButtonCount As Integer = 0
Private Sub Buttons_BackColorChanged(sender As Object, e As EventArgs) Handles Button3.BackColorChanged,
Button2.BackColorChanged,
Button1.BackColorChanged
limeButtonCount = Controls.OfType(Of Button)().Count(Function(b) b.BackColor = Color.Lime)
TextBox1.Text = limeButtonCount.ToString()
End Sub