C#是否覆盖DefaultValue属性?
在C#用户控件中,是否可以重写应用于属性的属性,而不必重写该属性 例如,您希望一个属性继承时具有“Browsable(true)”属性,但对于您的控件,您希望具有“Browsable(false)”属性。您是否必须重写属性本身,或者是否可以使用TypeDescriptor做些什么 如果属性不是虚拟的,则不可能进行重写,并且在使用“new”时,不能通过对基类(如“Control”)的引用来访问属性 例如,更改文本框控件上滚动条默认值的简单示例C#是否覆盖DefaultValue属性?,c#,user-controls,overriding,C#,User Controls,Overriding,在C#用户控件中,是否可以重写应用于属性的属性,而不必重写该属性 例如,您希望一个属性继承时具有“Browsable(true)”属性,但对于您的控件,您希望具有“Browsable(false)”属性。您是否必须重写属性本身,或者是否可以使用TypeDescriptor做些什么 如果属性不是虚拟的,则不可能进行重写,并且在使用“new”时,不能通过对基类(如“Control”)的引用来访问属性 例如,更改文本框控件上滚动条默认值的简单示例 public partial class MyText
public partial class MyTextBox : TextBox
{
public MyTextBox()
{
this.ScrollBars = ScrollBars.Vertical;
}
[DefaultValue(typeof(ScrollBars),"Vertical")]
public ScrollBars ScrollBars
{
get { return base.ScrollBars; }
set { base.ScrollBars = value; }
}
}
// this doesn't go via property setter as not overridden
TextBox textbox = new MyTextBox();
textbox.ScrollBars = ScrollBars.None;
谢谢,
罗斯不,你不能不重写。如果财产不是虚拟的,你就注定要失败