我找到了this page,其中概述了如何更改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; }
}
}
因此,它会将悬停的菜单项的背景更改为橙黄色渐变,在点击时将其更改为黄橙色渐变,并且菜单中的任何项目在悬停时都会有金色突出显示。 / p>
我要做的是为表格中的按钮执行最后一部分(将突出显示更改为金色/黄色)。
答案 0 :(得分:4)
在按钮的属性中:
在Appearance / FlatStyle下,选择" Flat"。
然后,在Appearance / FlatAppearance / MouseOverBackColor下,选择您想要的高亮颜色。
答案 1 :(得分:1)
您可以查看Button Renderer。
如果您只想订阅MouseHover事件,为什么要覆盖渲染器:
this.someButtonName.MouseHover += (s,e) =>
{
this.someButtonName.BackColor = Color.Yellow;
};
我建议您也使用鼠标离开,以便在您的鼠标不再使用时将按钮重置为初始颜色。