在C#程序设计中,提供了最基本的窗体设计,如果运用到商业化的产品中,显得呆板无趣,也没有个性,如果要设计商业化的产品,让自己的产品有特点,让自己的软件有个性,按钮是需要人性化的操作,好的界面离不开定制化的位图按钮。
在C#中增加一个类ExButton,这个类的基类为Button,按钮通常有四种状态:正常、禁止、获得焦点、按钮,这四种状态的确立需要与鼠标的动作结合起来。在该类中,需要重载OnMouseEnter()、OnMouseLeave()、OnMouseDown()、OnMouseUp(),利用重载的鼠标事件确定按钮的各种状态。
protectedoverridevoid OnMouseEnter(EventArgs e)
{
this.SetStatus(ButtonStatus.Hover);
base.OnMouseEnter(e);
}
protectedoverridevoid OnMouseLeave(EventArgs e)
{
this.SetStatus(ButtonStatus.Normal);
base.OnMouseLeave(e);
}
protectedoverridevoid OnMouseDown(MouseEventArgs mevent)
{
if (mevent.Button == System.Windows.Forms.MouseButtons.Left)
{
this.SetStatus(ButtonStatus.Press);
}
base.OnMouseDown(mevent);
}
protectedoverridevoid OnMouseUp(MouseEventArgs mevent)
{
if (mevent.Button == System.Windows.Forms.MouseButtons.Left)
{
this.SetStatus(ButtonStatus.Normal);
}
base.OnMouseUp(mevent);
}
最后重载一下OnPaint()函数,按照按钮的各种状态绘制不同的按钮图像,当然,这里是发挥的天堂,本文的绘制方法仅供参考。
参考源码:https://download.csdn.net/download/mr_liyonghong/10310949