@kos_dev

Как определить на какой Control было нажатие, если он создан кодом?

Здравствуйте, создаю софт, в котором будут динамически добавляться контроллы на форму.
Вот пример создания контролла:

Label label = new Label();
            label.ForeColor = Color.LightYellow;
            label.BackColor = Color.Transparent;
            label.AutoSize = false;
            label.Size = textSize;
            label.TextAlign = ContentAlignment.MiddleCenter;
            label.Text = _login;

            backPanel.Controls.Add(label);


Вопрос такой, вот я создал данный лейбл, теперь хочу, чтобы по нажатию на него в переменную X записалось число 0, создам еще один лейбл, при нажатии на него в X писалось 1. Думаю мысль я донес. Я хочу как-то различать эти лейблы между собой, чтобы, если потребуется, то удалить один из них.

Всем заранее большое спасибо за помощь.
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
tomnolane
@tomnolane
профессиональный разработчик
вы обращали на объект sender при создания метода Click у кнопки?
private void button1_Click(object sender, EventArgs e)  
  {
  // тут какой-то код
  }

так вот, этот sender и есть - та вещь, которая вам нужна, т.е.
private void label_Click(object sender, EventArgs e)  
  {
    Label lb = sender as Label;
      lb.Content = "какой-то текст";
// или 
     int x;
    switch((sender as Label).Name)
    { 
          case "label":  x = 0; break; 
          case "label2": x = 1; break; 
          case "label3": x = 2; break; 
          default: x = -1; break; 
    }
  }

вот и всё) sender - знает тот объект, по которому "кликнули"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы