我创建了一个包含自定义 UserControl
的 ToolStrip Control
。在整个应用程序中使用 UserControl
时,不能直接访问 ToolStrip
控件,因为它在逻辑上嵌入在 UserControl
中。
因此,为了访问 ToolStrip
的项目,我在 readonly
类中定义了一个 UserControl
属性,该属性返回 ToolStrip 的项目。
现在,可以通过使用 ToolStrip
属性以编程方式编辑 UserControl.Items
的项目,但我不能在设计模式下进行相同的操作。
就像有人将 UserControl
从 ToolBox
拖到表单中,转到 propertyGrid
,选择 Item 的属性并相应地操作根深蒂固的 ToolStrip
的项目;就像我们在 Items ToolStrip
的帮助下处理任何标准 Collection Editor
控件的项目集合一样。
在这里,虽然Items
的UserControl
属性显示在propertyGrid
中,但它不可用,每次点击都会显示错误信息
我确定这是因为该属性被声明为只读,我需要加息,以便在 propertyGrid 中单击它时,Items Collection Editor
会弹出 ToolStrip
的项目,因此可以进行处理。
那么我该怎么做呢?
最佳答案
您可以通过公开 ToolStrip
本身来做到这一点,但这不是一个好主意。 UserControl
不应公开其内部控件。
如果您的用户控件只有一个 ToolStrip
,您应该考虑使用 CustomControl
,它是一个继承 ToolStrip
的类,您可以免费获得其所有功能,包括设计功能。
关于c# - 如何在自定义 UserControl(.Net 4、Winforms)上使用项目集合编辑器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12095899/