public class Component1 : Label
    {
        public Component1()
        {
            InitializeComponent();
            this.Click += new EventHandler(Component1_Click);
        }        public Component1(IContainer container)
        {
            container.Add(this);            InitializeComponent();
        }        void Component1_Click(object sender ,EventArgs e)
        {
            MessageBox.Show("Component1_Click");
        }
        
    }
按上面这种写法,为什么点击的时候不能触发Component1_Click方法?我把这类放在一个Form中,为什么加入到Form中,从Form中写下面这句话却可以this.component11.Click += new System.EventHandler(this.component11_Click);

解决方案 »

  1.   

    this.component11.Click += new System.EventHandler(this.component11_Click);
    2个一样的?
      

  2.   

    想要彻底理解时间
    楼主可以这样看
    1. 设计模式:观察者模式
    2. C# Delegate
    3. C# Event相信看过这三个主题之后,楼主会对事件有个全新的了解~
    再也不会知其然而不知其所以然 :)
      

  3.   

    把事件注册写到
    组建的InitializeComponent();方法中去
      

  4.   

    你new Component1的时候是
    new Component1();
    还是
    new Component1(new IContainer());