C#WinForms中的自定义按钮

时间:2012-02-16 23:41:39

标签: c# windows forms button

我做了一些研究,但似乎无法找到我想要的东西。

我想要做的是在Windows窗体中创建一个“自定义”按钮。这基本上只是将默认的“灰色”背景更改为自定义图像。当鼠标悬停在单击按钮上时,也会使用自定义图像。

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

这可能吗?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:3)

我找到的解决方案是将按钮的 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;
    }

希望这会帮助别人!