6

是的,与标题完全相同,在我的项目中,一些工具条菜单项被禁用。但是当我将光标移到菜单项上时,会出现一个蓝色边框,如下所示: 在此处输入图像描述
但我不想要这个。我想要这样:
在此处输入图像描述
你能帮我吗,我如何防止这个蓝色边框?

4

2 回答 2

11

您应该创建一个自定义ToolStripRenderer,看看这个 - How to: Set the ToolStrip Renderer for an Application

  1. 您必须像这样创建自定义渲染器:

    class CutomToolStripMenuRenderer : ToolStripProfessionalRenderer
    {
        protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
        {
            if (e.Item.Enabled)
            base.OnRenderMenuItemBackground(e);
        }
    
        protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
        {
            if (e.Item.Enabled)
            base.OnRenderMenuItemBackground(e);
        }
    } 
    
  2. 然后将此渲染器设置为您的菜单条:

    menuStrip1.Renderer = new CustomToolStripRenderer();
    
于 2012-11-13T17:26:51.653 回答
0

通过在ToolStripMenuItem和作为ToolStripLabel的项目副本之间切换,我可以更好地控制我的“已禁用”菜单项。然后,我没有设置 Enabled = false,而是在两者之间切换可见性。这样我可以为“禁用”菜单项(标签)设置自定义前景色。

    bool m_isStartSvcEnabled = true;


    void ToggleServiceEnabled()
    {
        m_isStartSvcEnabled = !m_isStartSvcEnabled;

        mnuStartSvc.Visible = m_isStartSvcEnabled;
        lblStartSvc.Visible = !m_isStartSvcEnabled;

        mnuStopSvc.Visible = !m_isStartSvcEnabled;
        lblStopSvc.Visible = m_isStartSvcEnabled;
    }

在此处输入图像描述 在此处输入图像描述

(我在创建项目时定义的标签的白色菜单前景色和浅灰色前景色。)

于 2018-06-15T15:52:34.133 回答