我在开一个C#winform程序时,要求重载Button按钮,当鼠标移动到button上时触发MouseEnter事件,改变按钮颜色,当鼠标离开Button按钮时触发,Mouseleave事件,恢复按钮颜色,现在的问题时,如果我每个按钮都进行相同的设置,整个程序需要100我个Button不累死才怪,所以我想了一个办法,进行自定义封装按钮,但不知如何封装上述两个事年,请各位大虾帮忙,

解决方案 »

  1.   

    类似如下: public class myButton : Button
    {
    protected override void OnMouseEnter(EventArgs e)
    {
    base.OnMouseEnter(e);
    //code here
    }
    protected override void OnMouseLeave(EventArgs e)
    {
    base.OnMouseLeave(e);
    //code here
    }
    }
      

  2.   

     public class ButtonEx : Button
            {
                protected override void OnMouseEnter(EventArgs e)
                {
                    base.OnMouseEnter(e);
                    this.BackColor = Color.Silver;
                }
                protected override void OnMouseLeave(EventArgs e)
                {
                    base.OnMouseLeave(e);
                    this.BackColor = System.Drawing.SystemColors.ButtonFace;
                }
            }