How can I prevent a disabled ToolStripMenuItem from showing a border on mouse over?
Asked Answered
C

2

6

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?

Cruiserweight answered 13/11, 2012 at 16:45 Comment(1)
Thank you for correcting the title. I wrote very long to fully explain my problem.Cruiserweight
A
11

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();
    
Advertise answered 13/11, 2012 at 17:26 Comment(0)
M
0

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.)

Massy answered 15/6, 2018 at 15:52 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.