Winforms中带有标签的C#下拉菜单

Winforms中带有标签的C#下拉菜单,c#,winforms,C#,Winforms,我希望在Winforms的C#中有一个下拉菜单,菜单项之间有文本标签。它将非常类似于分离器。所以基本上我在看一个对菜单项进行分组的选项 你知道我们怎样才能做到吗?附件是我想要的下拉菜单。 可能在下面链接可以帮助您: 希望您使用的是VS2010 在菜单设计器中,右键单击需要分隔条的位置,然后选择“转换为->分隔符” 您可能还想看看这一点(关于表单分隔符,但版本是VS2003!)——我确信有很多复杂的方法可以做到这一点,但我发现有一种方法可以通过3个步骤满足您的需要: 1.您可以制作自己的T

我希望在Winforms的C#中有一个下拉菜单,菜单项之间有文本标签。它将非常类似于分离器。所以基本上我在看一个对菜单项进行分组的选项

你知道我们怎样才能做到吗?附件是我想要的下拉菜单。

可能在下面链接可以帮助您:


希望您使用的是VS2010

在菜单设计器中,右键单击需要分隔条的位置,然后选择“转换为->分隔符”




您可能还想看看这一点(关于表单分隔符,但版本是VS2003!)——

我确信有很多复杂的方法可以做到这一点,但我发现有一种方法可以通过3个步骤满足您的需要:

1.您可以制作自己的ToolStripItem:

[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.All)]
public sealed class CustomToolStripMenuItem : ToolStripMenuItem
{

    public CustomToolStripMenuItem()
    {
        DisplayStyle = ToolStripItemDisplayStyle.Text;
        BackColor = Color.LightSteelBlue;
        ForeColor = Color.MidnightBlue;
        Font = new Font(Font, FontStyle.Bold);
       // Or other options to your liking
     }
}
2.您可以制作自己的渲染器:

public class CustomeRenderer : ToolStripProfessionalRenderer
{

    protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
    {
        if(e.Item is CustomToolStripMenuItem)
        {
            e.Graphics.FillRectangle(Brushes.LightSteelBlue, e.Item.ContentRectangle);
        }
        else
        {
            base.OnRenderMenuItemBackground(e);
        }
    }
}
3.使用您的物品: 对于您的contextmenu,您需要设置渲染器:

 RenderMode = ToolStripRenderMode.Professional;
 Renderer = new CustomeRenderer();

在关联菜单中,现在可以使用CustomToolStripMenuItem

轻松创建自己的标签控件,并将其添加到设计器选择中。然而,让它延伸到图像的边缘是很困难的。我只想提一提我的解决方案,我的建议对你有用吗Kiran?