“更改 WinForms”按钮突出显示颜色

本文关键字:显示 颜色 按钮 更改 WinForms | 更新日期: 2023-09-27 18:36:42

我找到了这个页面,它概述了如何更改MenuStrip及其项目的呈现。

我想使用它,但问题是当您将鼠标悬停在按钮上时突出显示颜色不匹配。

有没有办法将突出显示颜色从蓝色更改为黄色? 我尝试过使用 MouseHover 和 MouseLeave 事件,但由于某种原因,它们真的很慢,它们将按钮更改为纯色,看起来很糟糕,但在按钮边缘留下了一个不会更改的边框。

在设计器中:

this.ButtonName.MouseHover += new System.EventHandler(button_mousehover);

然后在代码中:

private void button_mousehover(object sender, EventArgs e)
{
    Button btn = sender as Button;
    btn.BackColor = Color.Yellow;
}

有没有什么像我上面发布的链接一样容易将突出显示颜色从蓝色更改为其他颜色?

下面是用于更改菜单条呈现的代码:

private void myForm Load(object sender, EventArgs e)
{
    myMenuStrip.Renderer = new MenuRenderer();
{
private class MenuRenderer : ToolStripProfessionalRenderer
{
    public MenuRenderer() : base(new MyColors()) { }
}
private class MyColors : ProfessionalColorTable
{
    public override Color MenuItemSelectedGradientBegin
    {
        get { return Color.Orange; }
    }
    public override Color MenuItemSelectedGradientEnd
    {
        get { return Color.Yellow; }
    }
    public override Color MenuItemPressedGradientBegin
    {
        get{ return Color.Yellow; }
    }
    public override Color MenuItemPressedGradientEnd
    {
        get { return Color.Orange; }
    }
    public override Color MenuItemSelected
    {
        get { return Color.Gold; }
    }
}
因此,它会将悬

停在菜单项上的背景更改为橙黄色渐变,单击时将其更改为黄橙色渐变,并且菜单中的任何项在悬停时都会有金色突出显示。

我正在尝试做的是为表单中的按钮执行最后一部分(将突出显示更改为金色/黄色)。

“更改 WinForms”按钮突出显示颜色

在按钮的属性中:

在"FlatStyle"下,选择"Flat"。

然后,展开FlatAppearance并在"MouseOverBackColor"下选择所需的突出显示颜色。或者,您也可以在MouseOverBackColor下输入所需的RGB color

你可以看看按钮渲染器。

当您可以简单地订阅 MouseHover 事件时,为什么要覆盖渲染器,如下所示:

this.someButtonName.MouseHover += (s,e) => 
{
   this.someButtonName.BackColor = Color.Yellow;
};

我建议您也使用鼠标离开,以便在鼠标不再在其上时将按钮重置为其初始颜色。