我想在 C# 中的 Winforms 中有一个下拉菜单,菜单项之间有文本标签。它将与分隔符非常相似。所以基本上我正在寻找对菜单项进行分组的选项。
知道我们如何实现它吗?附件是我希望拥有的下拉菜单。
希望你使用的是 VS2010
在菜单设计器中,右键单击需要分隔栏的位置,然后选择转换为 -> 分隔符。
您可能还想看看这个(它关于表单分隔符,但版本是 VS2003!)—— Windows 表单分隔符控件
我确信有很多复杂的方法可以做到这一点,但我找到了一种可以通过 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
可能下面的链接可以帮助你: