2016-04-10 2 views
1

Я работаю с 70 кнопками в своем приложении, поэтому я думал, что вместо того, чтобы делать разные кнопки button1_Click, button2_Click ... button70_Click, я бы просто сделал один. Проблема в том, что я не знаю, как проверить, какая текущая кнопка нажата, поскольку всякий раз, когда я нажимаю кнопку, я хочу, чтобы ее цвет изменился.Как проверить, какая кнопка нажата? Visual Studio C#

+2

Вы можете получить его с помощью литья 'sender' аргумент обработчика событий для кнопки –

+2

Возможного дубликата [Detect правой кнопки мыши на каждую PictureBox на форме] (http://stackoverflow.com/questions/35528548/detect-right-click-on-every-picturebox-on-the-form) –

+0

@KooKiz, но в случае, если я хочу изменить BackColor нажатой кнопки на зеленый. как узнать его имя, чтобы изменить его цвет? –

ответ

5

Cast параметр sender из обработчика событий в Button

Button ClickedButton = (Button)sender; 

То есть кнопка, вызвавший событие.

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

public form1() 
{ 
     //You probably do this in a loop over all your buttons 
     button1.Click += MyButtonClickHandler; 
} 

private void MyButtonClickHandler(object sender, EventArgs e) 
{ 
    Button ClickedButton = (Button)sender; 
    ClickedButton.ForeColor = Color.Red; 
} 
+0

Где я могу вставить эту строку? Прямо перед нажатием кнопки событие? –

+0

См. Мое редактирование для примера – Jens

+0

О, я понял! Извините, что забрал меня так долго. –

Смежные вопросы