【发布时间】:2015-04-01 01:54:41
【问题描述】:
如何添加一个向右箭头的菜单项,就好像有子菜单但不显示子菜单一样?
背景:对于托管 C# 应用程序,我想添加一个在非托管 DLL 中创建的子菜单(使用 TrackPopupMenu())。
在我的实验中,我只能在使用“DropDownItems.Add”附加项目时显示箭头。
我尝试使用
ToolStripMenuItem menu = new ToolStripMenuItem();
m_menu.Text = "Item that should have arrow w/o submenu";
m_menu.Click += this.OnMenuDoSomething;
m_menu.DropDownItems.Add("");
这仍然会添加一个子菜单。然后我尝试了这些组合:
m_menu.DropDownItems[0].Enabled = false;
m_menu.DropDownItems[0].Available = false;
m_menu.DropDownItems[0].Visible = false;
但是包含箭头的子菜单要么消失,要么什么都没有。
【问题讨论】:
-
箭头取决于有一个子菜单这一事实 - 禁用它或隐藏它会隐藏箭头。您可以使用图标或其中之一:->、=>、-->。
-
现在真的有办法强制这样做吗?如果没有,我如何在右侧对齐文本/图像(箭头所在的位置)?
-
另外:有没有简单的方法从 DLL 中的资源加载菜单(例如 MFC 中的 CMenu::FromResource?)我猜不是...
-
我只是看到这不是一个真正的解决方案,因为:Windows 字体中不存在实际的 unicode 箭头(右三角形,代码 9205)。图片是无解的,好像只能用一张图片
标签: c# winforms toolstrip toolstripmenu