菜单剥离用户控件,在设计时添加项目

时间:2012-10-18 21:07:10

标签: c# winforms

我的目标是在visual studio中的menustrip上模拟智能标记,插入常用菜单项。

我想让用户能够从下拉列表中选择他们想要的项目(我已经使用了UITypeEditor),然后创建项目就像他们通常在设计时一样(部分表单的组件及其创建代码在.Designer.cs文件中。

我能做的最好的事情是让menustrip控件创建项目并将它们添加到它的Items集合中。问题是在设计时不能进一步操纵物品。包含它们的菜单实际上是“锁定”的。为了让用户添加更多按钮,他们必须在运行时动态地执行它。

我的目标是否可行,如果可以的话,有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

我不是肯定的,但我认为你需要与IComponentChangedService进行互动并告知它你的菜单已经改变了。自从我为控件编写设计时支持以来已经有一段时间了。

在你的设计师中:

IComponentChangeService changeService = (IComponentChangeService)GetService(typeof(IComponentChangeService));

<强>实际上

我认为您需要的DesignHost可以查看:

IDesignerHost designHost = (IDesignerHost)GetService(typeof(IDesignerHost));
designHost.Container.Add(...)

我相信您必须将组件添加到其中才能进行管理。