2015-12-16 2 views
0

Я новичок в vb.net. У меня есть 20 кнопок в одной форме. Когда я нажимаю какую-либо одну кнопку, цвет должен быть изменен.Цвет кнопки переключения, вызывая функцию в vb.net

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

Private Sub btnR1X1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnR1X1.Click 
    If (btnR1X1.BackColor = Color.White) Then 
     btnR1X1.BackColor = Color.Gray 
    ElseIf (btnR1X1.BackColor = Color.Gray) Then 
     btnR1X1.BackColor = Color.White 
    End If 
End Sub 
+0

Во-первых, вам нужно понять vb6 ≠ vb.net –

+0

Подкласс кнопки. –

+0

Извините за это. Не могли бы вы помочь мне сделать этот подкласс? – Nishakar

ответ

1

Я предположил, что вы используете VB.Net. Предположим, что это так, вы должны отредактировать свой вопрос, чтобы удалить тег vb6.

Вы можете написать функцию, которая будет переключать BackColor любого элемента управления.

Private Sub ToggleColor(ctrl As Control) 
    If ctrl.BackColor = Color.White Then ctrl.BackColor = Color.Gray Else ctrl.BackColor = Color.White 
End Sub 

Вы можете вызвать эту функцию из обработчика нажать кнопку в этом, как

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    ToggleColor(CType(sender, Control)) 
End Sub 

Однако, если все, что вы хотите делать, когда какой-либо из кнопок нажата, чтобы переключить BackColor, вы можете использовать один обработчик событий для события click каждой кнопки.

Private Sub Buttons_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click 'etc 
    Dim ctrl as Control = CType(sender, Control) 
    If ctrl.BackColor = Color.White Then ctrl.BackColor = Color.Gray Else ctrl.BackColor = Color.White 
End Sub