Изучение / Итерация событий пользовательского интерфейса - PullRequest
0 голосов
/ 30 мая 2011

В приложении C # мы можем добавить обработчик событий , как this.button3.Click += new System.EventHandler(this.button3_Click);, также мы можем удалить this.button3.Click -= new System.EventHandler(this.button3_Click);, так что это означает, что мы можем добавлять столько, сколько мы хотим, событий в элементе управления пользовательского интерфейса, поэтому мой вопросКак я могу исследовать или итерировать и удалить конкретное событие из пользовательского интерфейса.Например,Если мы сможем каким-то образом заполнить все события элемента управления в ListBox (если это возможно) и удалить выбранное.

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

1 Ответ

1 голос
/ 30 мая 2011

Вы можете легко отобразить список всех возможных событий для вашего компонента с кодом, подобным

EventInfo[] allEvents = Button1.GetType().GetEvents(System.Reflection.BindingFlags.Instance
    | System.Reflection.BindingFlags.Public);
foreach (EventInfo curEvent in allEvents)
{
    EventsListBox.Items.Add(curEvent.Name);
}

Однако кажется невозможным узнать, какие методы назначены делегатам, которые будут вызываться в случае события вне компонента. Вы можете обратиться к Как узнать, назначен ли конкретный делегат событию? , Определить список обработчиков событий, связанных с событием и Итерация через обработчики событий

...