1
C# 사용자 정의 컨트롤에서 속성을 재정의 할 필요없이 속성에 적용된 특성을 재정의 할 수 있습니까?C# DefaultValue 특성을 재정의 하시겠습니까?
예를 들어 상속 된 "Browsable (true)"특성을 가진 속성을 원하지만 사용자가 원하는대로 "Browsable (false)"속성을 원한다고 가정 해보십시오. 속성 자체를 재정의해야합니까, 아니면 TypeDescriptor로 뭔가 할 수 있습니까?
속성이 가상이 아닌 경우 재정의가 가능하지 않으며 "new"를 사용할 수 있지만 "제어"와 같은 기본 클래스에 대한 참조로 속성에 액세스 할 수 없습니다.
즉. 텍스트 상자 컨트롤의 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;
감사합니다, 로스