是的,与标题完全相同,在我的项目中,一些toolstripmenuitems被禁用。但是当我将光标放在菜单项上时,会出现一个蓝色边框:
但我不想要这个。我想要这样:
你能帮助我吗,我该如何阻止这个蓝色边框呢?
答案 0 :(得分:9)
您应该创建自定义ToolStripRenderer
,看看这个 - How to: Set the ToolStrip Renderer for an Application
您必须创建如下自定义渲染器:
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);
}
}
然后将此渲染器设置为菜单条:
menuStrip1.Renderer = new CustomToolStripRenderer();
答案 1 :(得分:0)
我可以更好地控制我的"残疾人" menuItems通过在 ToolStripMenuItem 和项目的副本之间切换为 ToolStripLabel 。 然后,我只是切换两者之间的可见性,而不是设置Enabled = false。 通过这种方式,我可以为"已禁用" menuItem(标签)。
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;
}
(白色菜单前色,以及我在项目创建中定义的标签的浅灰色前色。)