【问题标题】:How to remove properties that don't have a setter from properygrid c#如何从properygrid c#中删除没有设置器的属性
【发布时间】:2020-06-14 22:51:12
【问题描述】:

我正在 Winforms 中制作一个应用程序,用户从列表中选择一个对象(所有这些都是不同的类),然后编辑它的属性。一些对象的属性显示为灰色,因为它们没有设置器。有没有办法自动从网格中删除这些属性,或者获取所有类似条目的列表并以编程方式删除它们。

谢谢。

【问题讨论】:

  • 通常使用自定义设计器完成,覆盖PostFilterProperties(和PreFilterProperties,如有必要)。您将控件的属性作为字典接收。然后,您可以决定是否要从集合中删除该属性,或者只是使用 TypeDescriptor 将某些属性的BrowsableAttribute 设置为false(例如,properties["Some Property"] = TypeDescriptor.CreateProperty(this.Component.GetType(), (PropertyDescriptor)properties["Some Property"], new BrowsableAttribute(false));
  • 感谢您的回复。我应该为自定义设计器继承什么类?
  • ControlDesigner(直接或间接)派生​​的类。所以ControlDesigner 本身(或您从它派生的任何其他现有自定义类),或ParentControlDesigner

标签: c# winforms propertygrid


【解决方案1】:

我想出了怎么做。只需使用 PropertyTab 并在收集属性时过滤掉它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    相关资源
    最近更新 更多