还是重新定义一个Button吧,
重新定义Button的OnPaint(PaintEventArgs e)方法,
如果鼠标不在Button中,则e.Graphics.FillRectangle(brush1.rectangle);
先判断鼠标在不在Button中,如果在,则e.Graphics.FillRectangle(brush2,rectangle);
如果鼠标按下并在Button中,则再e.Graphics.FillRectangle(brush3,rectangle);