【问题标题】:Disable ToolStripMenuItem highlight?禁用 ToolStripMenuItem 突出显示?
【发布时间】:2014-12-17 23:23:04
【问题描述】:

我有一个带有 MenuStrip 的应用程序,每次我将鼠标悬停在 MenuItem 上时,它都会突出显示蓝色。

我已尝试更改 BackColor 和 ForeColor,但这不是问题。

有没有办法禁用它?

【问题讨论】:

    标签: c# winforms menustrip toolstripmenu


    【解决方案1】:

    这对最终用户来说毫无用处:

    internal class NoHighlightRenderer : ToolStripProfessionalRenderer {
      protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e) {
        if (e.Item.OwnerItem == null) {
          base.OnRenderMenuItemBackground(e);
        }
      }
    }
    

    然后将其应用到您的 MenuStrip:

    menuStrip1.Renderer = new NoHighlightRenderer();
    

    【讨论】:

    • 我只是出于同样的原因使用了这段代码,我不得不使用 if(e.Item.OwnerItem != null)
    • 很好的发现。如果您只想忽略禁用(例如“标签”)项目,请将 if 更改为 if(e.Item.Enabled)
    猜你喜欢
    • 1970-01-01
    • 2015-07-11
    • 2014-11-12
    • 1970-01-01
    • 2017-04-05
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多