我的目标是在visual studio中的menustrip上模拟智能标记,插入常用菜单项。
我想让用户能够从下拉列表中选择他们想要的项目(我已经使用了UITypeEditor),然后创建项目就像他们通常在设计时一样(部分表单的组件及其创建代码在.Designer.cs文件中。
我能做的最好的事情是让menustrip控件创建项目并将它们添加到它的Items集合中。问题是在设计时不能进一步操纵物品。包含它们的菜单实际上是“锁定”的。为了让用户添加更多按钮,他们必须在运行时动态地执行它。
我的目标是否可行,如果可以的话,有人能指出我正确的方向吗?
答案 0 :(得分:0)
我不是肯定的,但我认为你需要与IComponentChangedService进行互动并告知它你的菜单已经改变了。自从我为控件编写设计时支持以来已经有一段时间了。
在你的设计师中:
IComponentChangeService changeService = (IComponentChangeService)GetService(typeof(IComponentChangeService));
<强>实际上强>
我认为您需要的DesignHost可以查看:
IDesignerHost designHost = (IDesignerHost)GetService(typeof(IDesignerHost));
designHost.Container.Add(...)
我相信您必须将组件添加到其中才能进行管理。