質問

Yes, exactly same as the title, in my project some of toolstripmenuitems were disabled. But when i bring the cursor over the menu item, a blue border is appearing like this: enter image description here
But i don't want this. I want it like this:
enter image description here
Could you help me, how do i prevent this blue border?

役に立ちましたか?

解決

You should create a custom ToolStripRenderer, take a look at this - How to: Set the ToolStrip Renderer for an Application

  1. You have to create a custom renderer like this:

    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. And then set this renderer to your menu strip:

    menuStrip1.Renderer = new CustomToolStripRenderer();
    

他のヒント

I get a little more control of my "Disabled" menuItems by Switching between ToolStripMenuItem and a copy of the item as a ToolStripLabel. Then instead of setting Enabled = false, I just toggle the visibility between the two. This way I can have custom forecolors for the "Disabled" menuItem (Label).

    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;
    }

enter image description here enter image description here

(White menu forecolor, and and lighter gray forecolor for the label I defined in the creation of the items.)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top