0

我的目标是模拟 Visual Studio 中菜单条上已有的智能标签,该标签插入常用菜单项。

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

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

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

4

1 回答 1

0

我不是很肯定,但我认为您需要与IComponentChangedService交互并通知它您的菜单已更改。自从我为控件编写设计时支持以来已经有一段时间了。

在您的设计师中:

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

实际上

我认为这是您需要的 DesignHost,请查看:

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

我相信你必须将你的组件添加到它来管理它。

于 2012-10-19T18:05:02.210 回答