【发布时间】:2015-01-07 19:01:11
【问题描述】:
我找到了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; }
}
}
因此,它会将悬停菜单项的背景更改为橙黄色渐变,单击时将其更改为黄橙色渐变,并且菜单中的任何项目在悬停时都会有金色突出显示。
我要做的是为表单中的按钮执行最后一部分(将突出显示更改为金色/黄色)。
【问题讨论】:
-
您能否发布您的代码以更改 MenuStrip 项的呈现?
-
好的,等一下,我会把它编辑到评论中。
-
等一下,什么颜色你看不到你希望看到?
-
我可以看到你描述的高亮颜色。当我将鼠标悬停在
MenuItems 上时,我可以看到它们是金色的。 -
你试过 FlatAppearance 属性吗?
标签: c# visual-studio button highlight mousehover