WinForms - есть ли событие, захваченное для измененных дочерних элементов управления содержащей панелью? - PullRequest
1 голос
/ 21 июня 2010

У меня есть панель, и в ней есть пара текстовых полей, я хочу решить, включить ли кнопку (также внутри панели) для значений текстовых полей.

Существует ли предопределенное событие, на которое зарегистрирована панель, которое захватывает внутренние текстовые поля события onTextChange?

Спасибо, Shuky

Ответы [ 4 ]

1 голос
/ 21 июня 2010

Я бы просто установил один общий TextBox_TextChanged обработчик событий, который вызывает мой метод Validate, а затем связывал каждый TextBox с ним, что можно было бы сделать с помощью цикла.

Может быть, что-то вроде(не проверено):

 foreach (Control ctrl in container.Controls)
 {
   if (ctrl is TextBox)
   {
     ((TextBox)ctrl).TextChanged += new System.EventHandler(TextBox_TextChanged);
   }
 }
0 голосов
/ 21 июня 2010

Нет, нет (AFAIK).Но вы можете заставить все ваши текстовые поля использовать один и тот же метод при возникновении события.Если вы хотите динамически добавлять текстовые поля, вы можете зарегистрироваться для события ControlAdded и там, в свою очередь, зарегистрироваться для только что добавленного текстового поля.

0 голосов
/ 21 июня 2010

В отличие от HTML DOM, события в WinForms не распространяются на содержащие элементы, поэтому вам придется прослушивать все события самостоятельно.

0 голосов
/ 21 июня 2010

К сожалению, вы должны сделать это сами (подписаться на событие в текстовых полях).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...