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:
But i don't want this. I want it like this:
Could you help me, how do i prevent this blue border?
How can I prevent a disabled ToolStripMenuItem from showing a border on mouse over?
Asked Answered
Thank you for correcting the title. I wrote very long to fully explain my problem. –
Cruiserweight
You should create a custom ToolStripRenderer
, take a look at this - How to: Set the ToolStrip Renderer for an Application
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); } }
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;
}
(White menu forecolor, and and lighter gray forecolor for the label I defined in the creation of the items.)
© 2022 - 2024 — McMap. All rights reserved.