Dot-Net

Winforms MenuStrip 帶下劃線的熱鍵字母

  • September 29, 2021

通常,MenuStrip 上的熱鍵字母帶有下劃線。(&File、&Open 等)在我正在處理的項目中,下劃線會顯示在設計器中,但不會在執行時顯示。我找不到控制它的屬性。外面有人知道嗎?

在 Windows 中,有一個是否顯示下劃線的設置。要更改設置,

  1. 右鍵點擊桌面
  2. 選擇“屬性”
  3. 點擊“外觀”選項卡
  4. 點擊“效果”按鈕
  5. 取消選中標有“隱藏帶下劃線的字母以進行鍵盤導航”的框

您可以通過創建自定義 ToolStrip 渲染器來強制使用者查看下劃線。我花了很長時間才弄清楚如何繞過克里斯的回答。這是我創建的渲染器:

using System;
using System.Drawing;
using System.Windows.Forms;

namespace YourNameSpace
{
   class CustomMenuStripRenderer : ToolStripProfessionalRenderer
   {
       public CustomMenuStripRenderer() : base() { }
       public CustomMenuStripRenderer(ProfessionalColorTable table) : base(table) { }

       protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
       {
           e.TextFormat &= ~TextFormatFlags.HidePrefix;
           base.OnRenderItemText(e);
       }
   }
}

然後在帶有 MenuStrip 的表單中,在建構子中設置渲染器:

public YourFormConstructor()
{
   InitializeComponents();
   menuStripName.Renderer = new CustomMenuStripRenderer();
}

我想指出,如果您更喜歡系統風格的渲染外觀,您可以擴展 ToolStripSystemRenderer 類而不是 Professional,但我喜歡能夠自定義顏色表。這是不需要客戶端更改其電腦設置的修復程序。享受!

引用自:https://stackoverflow.com/questions/830326