现在有一个checkbox和一个button组成的自定义控件,如何将button的click事件公开出去,使我在运用此控件的时候可以更据前台需要自己编写实现方法。高手指教。

解决方案 »

  1.   

    1.在组合控件里定义一个委托
    2。如果委托里需要参数,还必须定义此参数类
    3。声明一个基于委托的事件并实现,注意事件的访问域应是protected
    4.在按钮的CLICK事件里收集委托需要的参数,然后调用事件委托变量对应的方法来触发自定义事件即可
      

  2.   

    在你的自定义控件里声明委托和时间,然后再button_onclick里调用这个事件即可。public delegate InhirtClickHandler(object sender,EventArgs e);public event InhirtClickHandler InhirtClickEvent;proteteced void OnInhirtClickEvent(EventArgs e)
    {
    if(InhirtClickEvent != null)
    {
    InhirtClickEvent(this,e);
    }
    }protected void Button1_Onclick(object sender,EventArgs e)
    {
     //your code
    ...
    //Raise your defined event
     OnInhirtClickEvent(e);
    }
      

  3.   

    在使用你自定义控件的代码里绑定InhirtClickEvent即可。
      

  4.   


        class MyContorl : UserControl
        {
            public event EventHandler Click                  //<---
            {
                add { button.Click += value; }               //
                remove { button.Click -= value; }            //
            }
            //...
            private Button button = new Button();
            private CheckBox checkbox = new CheckBox();
        }
      

  5.   

    customcontrolid.InheritClickEvent += new delegate(object sender,EventArgs e)
    {
    你希望在按钮按下时执行的代码。
    }