2012-02-13 292 views
19

如何更改Windows應用程序菜單的懸停(鼠標懸停)顏色?如何更改菜單懸停顏色

C#中的任何方法?

OR

使用Windows API(的DllImport)什麼辦法?

見圖片:

enter image description here

回答

46

您正在使用的MenuStrip類。你可以重寫它的渲染器。這裏有一個例子,請選擇你自己的顏色。

public partial class Form1 : Form { 
    public Form1() { 
     InitializeComponent(); 
     menuStrip1.Renderer = new MyRenderer(); 
    } 

    private class MyRenderer : ToolStripProfessionalRenderer { 
     public MyRenderer() : base(new MyColors()) {} 
    } 

    private class MyColors : ProfessionalColorTable { 
     public override Color MenuItemSelected { 
      get { return Color.Yellow; } 
     } 
     public override Color MenuItemSelectedGradientBegin { 
      get { return Color.Orange; } 
     } 
     public override Color MenuItemSelectedGradientEnd { 
      get { return Color.Yellow; } 
     } 
    } 
} 

ProfessionalColorTable控制其他顏色元件的其他性能。

+0

哇....它的工作原理: )非常感謝:D – Sreekumar 2012-02-13 13:05:37

5

爲了改變鼠標懸停邊框顏色(項目)使用此:

public override Color MenuItemBorder 
{ 
    get { return Color.Green; } 
} 
+0

這部分是至關重要的。謝謝 – stuzor 2018-02-08 05:00:06

0

你也可以把它透明的(無形):

get { return Color.Transparent; }