1

我想在 C# 中的 Winforms 中有一个下拉菜单,菜单项之间有文本标签。它将与分隔符非常相似。所以基本上我正在寻找对菜单项进行分组的选项。

知道我们如何实现它吗?附件是我希望拥有的下拉菜单。 在此处输入图像描述

4

3 回答 3

2

希望你使用的是 VS2010

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

在此处输入图像描述


有关菜单增强的 MSDN 文章


您可能还想看看这个(它关于表单分隔符,但版本是 VS2003!)—— Windows 表单分隔符控件

于 2012-11-01T11:30:50.360 回答
0

我确信有很多复杂的方法可以做到这一点,但我找到了一种可以通过 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.使用您的项目:对于您的上下文菜单,您需要设置渲染器:

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

在您的上下文菜单中,您现在可以使用您的 CustomToolStripMenuItem

于 2012-11-01T13:15:12.983 回答
0

可能下面的链接可以帮助你:

分隔符组合列表 Vox

于 2012-11-01T10:50:12.017 回答