从Visual Studio Designer/Properties窗口隐藏继承的公共属性

本文关键字:继承 属性 隐藏 窗口 Studio Visual Designer Properties | 更新日期: 2023-09-27 18:28:25

首先,感谢您花时间阅读我的问题。

我在这个问题上花了很多时间,但没有成功。我创建了一个从TextBox继承的自定义TextBox。自定义文本框提供了一个更高级的建议下拉菜单,具有更好的过滤功能。自定义的TextBox工作得很好,但我想从VisualStudio:中的"属性"窗口中隐藏与原始建议菜单相关的属性

  • 自动完成自定义源
  • 自动完成模式
  • 自动完成源

我开发的试图隐藏这些属性的代码是:

    [ReadOnly(true)]
    [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
    [Obsolete("This property is obsolete.", true)]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    new private AutoCompleteStringCollection AutoCompleteCustomSource { get; set; }
    [ReadOnly(true)]
    [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
    [Obsolete("This property is obsolete.", true)]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    new private AutoCompleteMode AutoCompleteMode { get; set; }
    [ReadOnly(true)]
    [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
    [Obsolete("This property is obsolete.", true)]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    new private AutoCompleteSource AutoCompleteSource { get; set; }

我使用的来源是:

  • 使Visual Studio设计器忽略公共属性
  • 在自定义控件中隐藏不需要的属性

属性仍在显示中。请提供一个工作示例或参考。

再次感谢你把时间借给我。

从Visual Studio Designer/Properties窗口隐藏继承的公共属性

在实际的代码中,您真的使用new关键字来允许您声明的属性隐藏基类属性吗?

如果是这样,那么在我看来,VS设计器中显示的属性很可能不是您自己的,而是基类属性。

请注意,只有当您还更改属性的可访问性时才会发生这种情况(例如,基类属性为public,但您自己的派生类属性是private)。

这只是为什么隐藏继承成员几乎总是错误的又一个例子。