Как, используя рефлексию, получить перечень событий, связанных с той же кнопкой? - C#

Узнай цену своей работы

Формулировка задачи:

Не имя события- имя события и дурак получит. А само событие! Ну то есть: создадим форму и кинем на неё кнопку.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Reflection; 

namespace WindowsFormsApplication6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            
            //Вот так мы добавим обработчик события программно к кнопке
            this.button1.Click += new System.EventHandler(this.method);

            Type t = typeof(System.Windows.Forms.Button); 
            EventInfo [] e= t.GetEvents ();
 
            //Поехали программно перечислять события, связанные с этой кнопкой.
            for (int i = 0; i < e.Length; i++)
            {
                //А вот тут я пытаюсь программно добавить обработчик ко всем событиям    
                this.button1.(e[i]/*ЧЁ ТУТ ПИСАТЬ?*/)+=new System.EventHandler(this.method);
                   
                //Ну а вот так можно получить имя, это просто
                string ima= e[i].Name;
            }
        }
 
        private void method (object sender, EventArgs e)
        {
            //этот метод для понта просто
        }
    }
}
я так-то в объекте EventInfo нормально поковырялся. И в MemberInfo (базовый для EventInfo) тоже смотрел- ничё не нашёл.
this.button1.Click
эта вот штука имеет тип EventHandler; вот поля такого типа и надо искать в недрах EventInfo, но у меня не получилось. Ребята, может вы мне поможете?

Решение задачи: «Как, используя рефлексию, получить перечень событий, связанных с той же кнопкой?»

textual
Листинг программы
AddEventHandler(object, System.Delegate)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы