[英]How to add ContextMenu in a particular DataGridViewCell? (C# winforms)
[英]How to add a separator to a WinForms ContextMenu?
在我的控制范围内,我有:
ContextMenu = new ContextMenu();
ContextMenu.MenuItems.Add(new MenuItem("&Add Item", onAddSpeaker));
ContextMenu.MenuItems.Add(new MenuItem("&Edit Item", onEditSpeaker));
ContextMenu.MenuItems.Add(new MenuItem("&Delete Item", onDeleteSpeaker));
ContextMenu.MenuItems.Add( ??? );
ContextMenu.MenuItems.Add(new MenuItem("Cancel"));
如何向此 ContextMenu 添加分隔线?
我相信这只是一个破折号:
ContextMenu.MenuItems.Add("-");
这与破折号一样有效,我怀疑 Winforms 会将破折号转换为 ToolStripSeparator。 我认为这个解决方案对于任何必须维护代码的人来说更明显。
yourContextMenu.Items.Add(new ToolStripSeparator());
在 WPF 中:
ContextMenu.MenuItems.Add(new Separator());
如果您使用的是设计器,请以与命名菜单项相同的方式放置一个连字符“-”作为文本。 按回车后,将创建分隔符。
将 text 属性设置为连字符。
水平分隔符很酷,但如果你想要一个垂直分隔符呢?
好吧,不用担心 - 你可以拥有一个!
将MenuItem
上的BarBreak
属性设置为true
,它应该是分隔符之后的第一个:
var item = new MenuItem(text: "Settings", onClick: SomeFunction) { BarBreak = true };
要将项目添加到MenuItems
集合: yourContextMenu.MenuItems.Add(item)
。
也许在更高版本的 Visual Studio 中,他们使这更简单。 我正在使用 VS 2012。您可以通过表单设计器添加分隔符。 1) 选择/创建一个 MenuStrip。 2) 在“Type Here”上,鼠标右键。 3) 选择“插入”。 4) 选择“分隔符”。 5) 将新的分隔符拖到您希望它位于上方的文本上。 完毕。
ContextMenu
有一个构造函数,它接收一个MenuItem
对象数组。 不用说,您不能向该数组添加字符串。 但是,您可以通过添加new MenuItem("-")
来获得分隔符:
var contextMenu = new ContextMenu(new[]
{
timerMenuItem,
keypressMenuItem,
new MenuItem("-"), // Seperator
new MenuItem(text: "Exit", onClick: (sender, args) => Application.Exit())
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.