C# 如何改变 menuStrip 的悬停颜色?
C# how to change menuStrip hover color?
大家好,我想在将鼠标悬停在 menuStrip 上时更改菜单项的颜色。谁能帮帮我?
您不能使用正常的 MouseEnter
和 MouseLeave
事件来执行此操作。您需要直接覆盖菜单渲染。你可以这样做,使用 MenuStrip
class:
private class renderer : ToolStripProfessionalRenderer {
public renderer() : base(new cols()) {}
}
private class cols : ProfessionalColorTable {
public override Color MenuItemSelected {
// when the menu is selected
get { return Color.Blue; }
}
public override Color MenuItemSelectedGradientBegin {
get { return Color.Black; }
}
public override Color MenuItemSelectedGradientEnd {
get { return Color.White; }
}
}
如果您有兴趣,这就是您使用 MouseEnter
和 MouseLeave
事件时发生的情况。 (在 MouseEnter
事件中,它使 BackgroundColor
变为绿色,但并未调用):
大家好,我想在将鼠标悬停在 menuStrip 上时更改菜单项的颜色。谁能帮帮我?
您不能使用正常的 MouseEnter
和 MouseLeave
事件来执行此操作。您需要直接覆盖菜单渲染。你可以这样做,使用 MenuStrip
class:
private class renderer : ToolStripProfessionalRenderer {
public renderer() : base(new cols()) {}
}
private class cols : ProfessionalColorTable {
public override Color MenuItemSelected {
// when the menu is selected
get { return Color.Blue; }
}
public override Color MenuItemSelectedGradientBegin {
get { return Color.Black; }
}
public override Color MenuItemSelectedGradientEnd {
get { return Color.White; }
}
}
如果您有兴趣,这就是您使用 MouseEnter
和 MouseLeave
事件时发生的情况。 (在 MouseEnter
事件中,它使 BackgroundColor
变为绿色,但并未调用):