自定义控件上的buttonclick事件应该就是执行在自定义控件中定义的buttonclick事件吧

解决方案 »

  1.   

    可以在用户控件里写事件,点击按钮时引发事件。
    加载这个用户控件的窗体订阅这个事件。如果按钮非常多,可以考虑写一个事件,按扭点击时都引发这个事件(传入一个标识)。
    这时就需要窗体去判断一下,但这种方式并不好。大概这样:    public partial class UserControl1 : UserControl
        {
            public UserControl1()
            {
                InitializeComponent();
            }
            public delegate void ButtonsClickHandler(int ButtonIndex);
            public event ButtonsClickHandler ButtonsClick;        private void button1_Click(object sender, EventArgs e)
            {
                if (ButtonsClick != null)
                    ButtonsClick(1);//第一个按扭被点击
            }        private void button2_Click(object sender, EventArgs e)
            {
                if (ButtonsClick != null)
                    ButtonsClick(2);//第二个按扭被点击
            }        private void button3_Click(object sender, EventArgs e)
            {
                if (ButtonsClick != null)
                    ButtonsClick(3);//第三个按扭被点击
            }
        }
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void userControl11_ButtonsClick(int ButtonIndex)
            {
                switch (ButtonIndex)
                {
                    case 1:
                        //这里处理第一个按钮被点击时要做的事
                        break;
                    case 2:
                        //这里处理第二个按钮被点击时要做的事
                        break;
                    case 3:
                        //这里处理第三个按钮被点击时要做的事
                        break;
                    default:
                        break;
                }
            }
        }
      

  2.   

    其实感觉是一样的啊,你点击用户控件时要触发的不就可以代替用户控件上的Button嘛
    为什么要单独区分呢?
      

  3.   

    属于委托处理的范畴
    而且楼主的说法有问题
    直接点击本来按钮就是按钮的click,而不是控件的click 
    除非你将按钮的click和控件的click 都添加到一个方法里了