Нажмите Windows Форма - PullRequest
       4

Нажмите Windows Форма

0 голосов
/ 23 апреля 2020

Привет всем. Есть форма, которая унаследована от других форм. Я подписал эту форму для события Click, но она не работает для дочерних элементов управления, только для самой формы. На мой взгляд, необходимо зарегистрировать какое-то имущество. Скажите, пожалуйста

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

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

Вы можете l oop во всех элементы управления для регистрации вашего предполагаемого события:

foreach (Control control in this.Controls)
{
    control.Click += myForm_Click;
}
0 голосов
/ 23 апреля 2020

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

void SubscribeToControlsEventsRecursive(ControlCollection collection)
 { 
    foreach (Control c in collection)  
     {  
       c.MouseClick += (sender, e) => {/* handle the click here  */});  
       SubscribeToControlsEventsRecursive(c.Controls);
     }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...