这些天用Visual C#(特别是Visual C#2008),似乎menustrips和菜单的默认颜色是蓝色,这对我来说看起来很奇怪,是我真的想要覆盖的东西。我猜测Visual Studio从我选择的系统主题中选择了这种蓝色,但是我系统上运行的其他Windows应用程序都没有这种蓝色,所以我不知道为什么我的.NET应用程序必须拥有它。 ;)
无论如何,我注意到如果我使用较旧版本的Visual Studio(Visual Studio.NET)创建应用程序,则menustrips和菜单的默认背景颜色是您希望看到的标准灰色。这是我想的问题的一个解决方案,但它看起来像一个愚蠢的,我真的想找到一种方法在当前版本的Visual C#中覆盖它。
答案 0 :(得分:9)
将MenuStrip的“ RenderMode ”选项设置为“系统”而不是“managerRenderMode”
:)
答案 1 :(得分:3)
您是否尝试过设置menuStrip的背景颜色?您应该可以执行以下操作:
this.menuStrip1.BackColor = Color.FromKnownColor(KnownColor.Control);
答案 2 :(得分:0)
DotNet 1.x没有MenuStrip,并使用标准的Windows菜单。
DotNet版本2.0及更高版本具有MenuStrip,VS 7及更高版本从工具箱中删除MainMenu并将其替换为使用Office Xp 2003主题的MenuStrip,因此采用蓝色配色方案对于MenuStrip和ToolStrip。
MainMenu仍然可以添加到标准Windows菜单的工具箱中。
答案 3 :(得分:0)
您可以使用渲染模式,但只将系统主题设置为默认值。 .net允许您更改背景颜色和颜色,但是当您将鼠标悬停在它上面时它仍会显示默认颜色。 这是一个方法......
使用“DropDownOpening”,“DropDownClosed”和“MouseEnter”事件可以很容易地完成它。
private void fileToolStripMenuItem_DropDownOpening(object sender, EventArgs e){
// When the user clicks on "File" it will change to red.
fileToolStripMenuItem.ForeColor = Color.Red;
}
private void testToolStripMenuItem_MouseEnter(object sender, EventArgs e){
// When the user hovers over a child of "file" called "test", "file" turns orange.
fileToolStripMenuItem.ForeColor = Color.Orange;
}
private void test2ToolStripMenuItem_MouseEnter(object sender, EventArgs e){
// When the user hovers on a child of "file" called "test2", "file" turns blue.
fileToolStripMenuItem.ForeColor = Color.Blue;
}
private void fileToolStripMenuItem_DropDownClosed(object sender, EventArgs e){
// When the user leaves the "file" menu, it gets restored back to black.
fileToolStripMenuItem.ForeColor = Color.Black;
}
答案 4 :(得分:0)
您可以制作自己的渲染器
<?php echo "var cus_1_units ='" . $_SESSION['Custom']['custom_1_units'] . "';"; ?>
$("#custom_1_units").each(function() {
if($(this).text() == cus_1_units) {
$(this).attr('selected', 'selected');
}
});
然后,您只需将menustrip的渲染器设置为YourRenderer