我希望在C#中的Winforms中有一个下拉菜单,菜单项之间有文本标签。它将与分离器非常相似。所以基本上我正在寻找一个分组菜单项的选项。
知道我们如何实现它吗?随附的是我希望拥有的下拉菜单。
答案 0 :(得分:2)
希望您使用的是VS2010
在“菜单设计器”中,右键单击要放置分隔栏的位置,然后选择“转换为 - ”;分离器。
MSDN Article on menu enhancements
你可能也想看看这个(关于表格分隔符,但版本是VS2003!) - Windows Forms Separator Control
答案 1 :(得分:0)
可以在链接下方帮助您:
答案 2 :(得分:0)
我确信有很多复杂的方法可以做到这一点,但我已经找到了一个可以满足您需求的方法:
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