繁体   English   中英

C# WinForms 中的自定义按钮

[英]Custom Buttons in C# WinForms

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

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

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

这可能吗?

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

希望这会帮助别人!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM