Свойства контроля доступа из динамически создаваемого обработчика событий - PullRequest
2 голосов
/ 24 июня 2011

Я занимаюсь разработкой приложения на C # WinForms. На событии FormLoad я динамически создаю и добавляю в форму 100 кнопок без текста, но с именами, такими как button1, button2 и т. Д. Кроме того, на этих кнопках после их создания я динамически связываю уникальный обработчик событий для события ButtonClick. Как я могу получить доступ к свойствам кнопки из обработчика событий (точнее, имени кнопки)? Если я использую это. Имя, я получаю имя формы, а не имя кнопки.

Позже Редактировать: (для тех, кто может задаться вопросом здесь в поисках решений)

private void function1()
{
    Button a = new Button();

    a.Name = "button" + (i * j).ToString();
    a.Click += new EventHandler(OnFieldButtonClicked);
}

private void OnFieldButtonClicked(object sender, EventArgs e)
{
    Button button = (Button)sender;
    MessageBox.Show(button.Name);
}

1 Ответ

6 голосов
/ 24 июня 2011

Аргумент sender - это обработчик события, инкапсулирующий экземпляр объекта, который вызвал событие:

Button button = (Button) sender;
String text = button.Text;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...