是否可以在C#用户控件中覆盖应用于属性的属性,而不必覆盖属性?
比如说,你想要一个继承的属性,它具有“可浏览(true)”属性,但对于你的控件,你需要“可浏览(假)”。你是否必须覆盖属性本身,或者你可以使用TypeDescriptor做什么吗?
如果属性不是虚拟的,则无法覆盖,并且虽然可以使用“new”,但是您无法通过引用基类(如“Control”)来访问该属性。
即。在文本框控件上更改ScrollBars默认值的简单示例。
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;
谢谢, 罗斯
答案 0 :(得分:0)