Вопрос по c# – Пользовательский контроль Нажмите - Windows Forms

9

У меня есть пользовательский элемент управления на мои формы Windows. Этот элемент управления имеет несколько меток.

Я буду динамически отображать массив этих элементов управления в моей форме, который будет содержать разные биты данных.

То, что я пытаюсь сделать, это знать, какой пользовательский элемент управления был выбран, когда я нажимаю на него.

Это работает, когда я нажимаю на пустое место в пользовательском элементе управления, однако, если я нажимаю на любой ярлык на пользовательском элементе управления, он не распознает щелчок пользовательского элемента управления.

Любые мысли о том, как я могу сделать полный щелчок элемента управления пользователя, даже если нажата метка на элементе управления?

Если этот вопрос неясен или вам нужна дополнительная информация, пожалуйста, оставьте комментарий.

Я делаю это в C #.

Спасибо!

Ваш Ответ

2   ответа
11

ать при нажатии другого элемента управления на пользовательском элементе управления. Вам необходимо вручную связать событие щелчка каждого элемента. Вы можете сделать это с помощью простого цикла в коде пользовательского элемента управления:

foreach (Control control in Controls)
{
    // I am assuming MyUserControl_Click handles the click event of the user control.
    control.Click += MyUserControl_Click;
}

После того, как этот кусок кода заработает, MyUserControl_Click будет срабатывать при нажатии любого элемента управления на пользовательском элементе управления.

Error: User Rate Limit Exceededpublic void MyUserControl_Click(Object sender, EventArgs e) { if(sender.GetType() is Label) {...} } Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded CodeLikeBeaker
0
    foreach (Control c in this.Controls)
    {
        c.Click += new EventHandler(SameAsForm_Click);
    }

щелчки в групповых окнах, панелях и т. д. для «SameAsForm_Click» -EventHandler.

Похожие вопросы