Первым аргументом обработчика событий является отправитель, вы можете привести его к кнопке и затем получить доступ к свойству Name.
Вот небольшой пример обработчика событий.
private void Button_Click(object sender, EventArgs e)
{
Button button = sender as Button;
if (button != null)
{
// Do something with button.Name
}
}
Редактировать: Как упоминал Ганс в комментариях, использование as
может скрыть потенциальную ошибку. Использование оператора as
, как в приведенном выше примере, гарантирует, что если вы непреднамеренно подключите этот обработчик к событию другого элемента управления, код будет обрабатывать его любезно и не выбросит InvalidCastException
, но в этом также заключается проблема, потому что это теперь молча завершается ошибкой, вы не можете обнаружить ошибку в вашем коде. Если бы возникло исключение, вы бы поняли, что есть проблема, и смогли бы ее отследить. Таким образом, обновленный код будет выглядеть примерно так:
private void Button_Click(object sender, EventArgs e)
{
// If sender is not a Button this will raise an exception
Button button = (Button)sender;
// Do something with button.Name
}