【问题标题】:Exposing internal objects of a user control in the properties view of the designer?在设计器的属性视图中公开用户控件的内部对象?
【发布时间】:2013-07-21 12:52:57
【问题描述】:

我已经成功地使用 DesignerSerializationVisibility(Content) 在 vb.net 设计器中公开了一组项目。现在我有了新的转折。我的集合中某个自定义控件的项目是不可变的——即项目既不能添加也不能删除。我想要的只是在设计器的属性面板中公开我的集合项目,以便开发人员可以调整预定义项目集合中每个项目的各个属性。

当我尝试 DesignerSerializationVisibility(Content) 时,它允许开发人员管理项目,而不是编辑现有项目,而是尝试将项目重新添加到集合中,这会导致键冲突。

因此,我认为将集合中的每个项目公开为自己的属性可能是有意义的。我使用了 DesignerSerializationVisiblity(Visible) 和 (Content),两者都只在属性窗口中显示类型名称,但它公开的对象不可见,无法对其属性进行操作。

是我遗漏了什么还是无法做到这一点?我在某处读到了有关使用 TypeConverter 的信息。是这样吗?

【问题讨论】:

标签: vb.net custom-controls windows-forms-designer design-time


【解决方案1】:

如果我正确理解您的问题,您希望将属性更改为具有多个子属性的可扩展属性。

如果我理解正确,您必须创建一个派生自 ExpandableObjectConverter 的类。并将此类与 TypeConverterAttribute 一起用于您的属性或与您的属性相关的类。

有关更多信息,请参阅我的问题,其链接在下面提供:

Hide ellipsis (…) button of expandable property like “…” button of font property in the property grid

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 2018-11-07
    相关资源
    最近更新 更多