Динамически добавленные элементы управления [например, кнопка]: как добавить события и доступ - PullRequest
0 голосов
/ 17 сентября 2009

В моей программе я динамически добавляю кнопки к моей форме

{
   ...
   Button bt = new Button();
   bt.Text = "bla bla";
   bt.MouseClick += new MouseEventHandler(bt_MouseClick);
   myPanel.Controls.Add(bt);
   ... 
}

void bt_MouseClick(object sender, MouseEventArgs e)
{
    TabPage _tab = new TabPage();
    _tab.Text =  ??? // I want to get the Button's text ! this.Text returns me the
                     //main form.Text 
}

Как получить доступ к моим динамическим свойствам кнопок? Как я могу понять, какая кнопка нажал либо получил его текст.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 17 сентября 2009
void bt_MouseClick(object sender, MouseEventArgs e)
{
    TabPage _tab = new TabPage();
    _tab.Text =  ((Button)sender).Text;
}
1 голос
/ 17 сентября 2009

Когда вызывается EventHandler делегат , параметр sender является компонентом, вызвавшим событие, а параметр e является подклассом EventArgs, который предоставляет любой дополнительный компонент / информация о событии.

Поэтому вы можете установить, на какую кнопку сработало событие, приведя параметр sender к Button:

void bt_MouseClick(object sender, MouseEventArgs e)
{
    var button = (Button)sender;
    TabPage _tab = new TabPage();
    _tab.Text =  button.Text;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...