Как добавить событие в список кнопок во время выполнения - PullRequest
2 голосов
/ 31 августа 2010

Я пытаюсь создать кнопки во время выполнения.Мой вопрос заключается в том, как я должен добавить событие к каждой из кнопок также в режиме выполнения?

Например:

Button btn;
int i =0;
int j =0;
List<Button> listBTN = new List<Button>();

private void button1_Click(object sender, EventArgs e)
    {
        btn = new Button();
        btn.Location = new Point(60 + i, 90);
        btn.Size = new Size(50, 50);
        btn.Name = "BTN";

        listBTN.Add(btn);

        i = i + 50;

        foreach(Button b in listBTN){
        this.Controls.AddRange(new Button[] {b});
        }
    }

image

Ответы [ 2 ]

4 голосов
/ 31 августа 2010
btn.Click += yourMethod;

private void yourMethod(object sender, EventArgs e)
{
    // your implementation
    Button btn = sender as Button;
    if (btn != null)
    {
        //use btn
    }
}

если вы хотите добавить событие при объявлении кнопки, используйте:

btn.Click += delegate
{
     //your implementation
};
1 голос
/ 31 августа 2010

Вы можете сделать что-то вроде этого:

Button btn = new Button();
btn.Name = "BTN" + i.ToString(); //just to be sure you can distinguish between them
btn.Click += new EventHandler(btn_Click);

И добавить обработчик по умолчанию для всех кнопок:

    void btn_Click(object sender, RoutedEventArgs e)
    {
        Button btn = (Button)sender;
        MessageBox.Show("You have clicked button number " + btn.Name);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...