Vil*_*lx- 5 .net contextmenu winforms
我想创建一个包含多个列的上下文菜单.基本上它会像这样:
First item | [common option] | All Options >
Second item | [common option] | All Options >
Third item | [common option] | All Options >
Fourth item | [common option] | All Options >
Run Code Online (Sandbox Code Playgroud)
所以基本上有一堆项目(在运行时生成),每个项目都可以自己启动; 或使用常用选项; 或者您可以获得包含所有可能选项的子菜单.
我怎样才能做到这一点?我试图滥用既ContextMenuStrip
和ContextMenu
,但他们似乎没有任何这样的选项.我似乎还记得在某处看过多列菜单......
我更喜欢Windows Forms解决方案,因为我没有任何WPF经验.哦,当点击通知区域(aka系统托盘)中的图标时,将打开此上下文菜单.
我不知道ContextMenuStrip
,这是一个完全用.NET代码构建的菜单,但你绝对可以这样做ContextMenu
,这是本机系统菜单的包装.
关键是为各个菜单项设置MFT_MENUBREAK
或MFT_MENUBARBREAK
标记,这些菜单项在MenuItem
类包装器中分别作为属性公开:MenuItem.Break
和MenuItem.BarBreak
.
前者只是将菜单项放在一个新列中,而后者将该项放入一个新列中,并将该列与蚀刻的垂直线分开.
从MSDN示例:
public void CreateMyMenus()
{
// Create three top-level menu items.
MenuItem menuItem1 = new MenuItem("&File");
MenuItem menuItem2 = new MenuItem("&New");
MenuItem menuItem3 = new MenuItem("&Open");
// Set the BarBreak property to display horizontally.
menuItem2.BarBreak = true;
menuItem3.BarBreak = true;
// Add menuItem2 and menuItem3 to the menuItem1's list of menu items.
menuItem1.MenuItems.Add(menuItem2);
menuItem1.MenuItems.Add(menuItem3);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2071 次 |
最近记录: |