C#WinForms中的自定义button

我做了一些研究,但似乎无法find我在找什么。

我想要做的是在Windows窗体中创build一个“自定义”button。 这基本上只是将默认的“灰色”背景改为自定义图像的问题。 当鼠标hover并点击button时,也会使用自定义图片。

这不仅仅是改变背景图像的问题,因为我想要使用的图像具有透明背景的圆angular边缘,我想要自定义图像hover/点击。 我希望button的所有其他内容与普通button的行为方式相同。

这可能吗?

Solutions Collecting From Web of "C#WinForms中的自定义button"

我找到的解决方案是将按钮的FlatStyle设置为Flat ,并将所有的边框设置为0.然后我有一个按钮的焦点问题(它显示了一个小边框)。 为了解决这个问题,我遵循本教程:

http://dotnetstep.blogspot.com/2009/06/remove-focus-rectangle-from-button.html

有了这个,我所要做的就是将事件添加到按钮,以便在执行某个操作时更改图像:

private void button1_MouseLeave(object sender, EventArgs e) { this.button1.Image = Properties.Resources._default; } private void button1_MouseEnter(object sender, EventArgs e) { this.button1.Image = Properties.Resources._hover; } private void button1_MouseDown(object sender, MouseEventArgs e) { this.button1.Image = Properties.Resources._clicked; } private void button1_MouseUp(object sender, MouseEventArgs e) { this.button1.Image = Properties.Resources._default; } 

希望这会帮助别人!

它被称为所有者绘制的按钮

参考:
Mick Dohertys'.net提示和技巧 – 提示/按钮
GlowButton – 一个发光的按钮控件
GDI +中闪亮的圆球按钮