关于用PictureBox自定义Button控件,代码没有按我想的执行!求解!谢谢
用picturebox写的一个按钮控件,为什么鼠标离开的时候,有时候是变回 SystemColors .ButtonFace ;颜色(正常),有时候却鼠标离开后还是Color.White 呢? 费解!请高手指点迷津!谢谢
public partial class ImageButton : System .Windows .Forms .PictureBox
{
private Color _mouseOnBackColor =Color.White ;
private Color _BackColor = SystemColors .ButtonFace ;
private Color _mouseDownBackColor = Color.SkyBlue ;
public ImageButton()
{
InitializeComponent();
this.MouseEnter += new EventHandler(ImageButton_MouseEnter);
this.MouseDown += new MouseEventHandler(ImageButton_MouseDown);
this.MouseUp += new MouseEventHandler(ImageButton_MouseUp);
this.MouseLeave += new EventHandler(ImageButton_MouseLeave);
this.Size = new Size(25, 25);
}
void ImageButton_MouseLeave(object sender, EventArgs e)
{
this.BackColor = backColorMouseOut;
this.BorderStyle = BorderStyle.None;
}
void ImageButton_MouseUp(object sender, MouseEventArgs e)
{
this.BackColor = backColorMouseOn;
this.BorderStyle = BorderStyle.FixedSingle;
}
void ImageButton_MouseDown(object sender, MouseEventArgs e)
{
this.BackColor = backColorMouseDown;
this.BorderStyle = BorderStyle.FixedSingle;
}
void ImageButton_MouseEnter(object sender, EventArgs e)
{
this.BackColor = backColorMouseOn;
this.BorderStyle = BorderStyle.FixedSingle;
}
[Description("按钮背景颜色"), Category("Appearance")]
public Color backColorMouseOut
{
get { return _BackColor; }
set { _BackColor = value; }
}
[Description("鼠标在按钮上面时的背景颜色"), Category("Appearance")]
public Color backColorMouseOn
{
get { return _mouseOnBackColor; }
set { _mouseOnBackColor = value; }
}
[Description("鼠标在按钮上按下时的背景颜色"), Category("Appearance")]
public Color backColorMouseDown
{
get { return _mouseDownBackColor; }
set { _mouseDownBackColor = value; }
}
}