PropertyGrid Control 를 사용할때 보통
[Category("위치")]
[Description("현재 X 좌표입니다. 읽기 전용 입니다.")]
[DisplayName("X")]
[ReadOnly(true)]
public int X
{
.....
}
이런 방법으로 Property에 별도의 속성을 적용하여 PropertyGrid 에 적용되게 한다.
하다보면 각종 속성에 대해서 Dynamic 하게 속성값을 변경해야 하는 경우가 있다.
>> Browsable
PropertyDescriptor descriptor = TypeDescriptor.GetProperties(this.GetType())["PropertyName"];
BrowsableAttribute attribute = (BrowsableAttribute)descriptor.Attributes[typeof(BrowsableAttribute)];
FieldInfo field = attribute.GetType().GetField("browsable", BindingFlags.NonPublic | BindingFlags.Instance);
field.SetValue(attribute, true);
>> ReadOnly
PropertyDescriptor descriptor = TypeDescriptor.GetProperties(this.GetType())["PropertyName"];
ReadOnlyAttribute attribute = (ReadOnlyAttribute)descriptor.Attributes[typeof(ReadOnlyAttribute)];
FieldInfo field = attribute.GetType().GetField("isReadOnly", BindingFlags.NonPublic | BindingFlags.Instance);
field.SetValue(attribute, true);
대충 이렇게 하면 변경이 가능하며
PropertyGrid 를 사용할 때 굉장히 유용하다.
'Dev::DotNet > WinForm' 카테고리의 다른 글
FarPoint Spread 출력화면 이미지 추출 (0) | 2013.10.23 |
---|---|
ProeprtyGrid 에서 사용자 Editor 생성 (0) | 2013.02.12 |
FarPoint.Win.TextRenderer.TextRenderer.DrawText 의 formatflags 속성 (0) | 2012.08.17 |
Spread 의 AllowCellOverflow 에 대해서.... (0) | 2012.08.08 |
C# 에서 Codejock 의 Ribbon 과 Docking (0) | 2012.07.21 |