DesignTime에서 Label의 Font 속성을 보면 아래 그림과 같이
관련된 속성들이 Font라는 그룹으로 묶여있습니다.
+ 버튼을 눌러 각 속성을 설정할 수 있도록 되어있죠
이렇게 관련된 속성이 그룹화되어 있으면 아주 편리합니다.
아래에 만드는 법을 소개합니다.
Step1) 사용자 지정컨트롤 추가
MyControl 사용자 지정 컨트롤을 추가합니다
public partial class MyControl : Control
{
public MyControl()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
}
}
Step2) 그룹화할 속성 클래스 추가
Options Class를 추가합니다.
public class Options
{
public bool UseOpacity { get; set; }
public bool UseText { get; set; }
}
Step3) 사용자 지정컨트롤에 속성 추가
private Options m_Option = new Options();
public Options Option
{
get
{
return m_Option;
}
}
여기까지 하면 아래 그림처럼 나옵니다.
그룹화 되어있지만 확장할 수 없습니다.
Step4) ExpandableObjectConverter 적용하기
확장하고자 하는 Class 혹은 Property에 ExpandableObjectConverter Attribute를 적용합니다.
한쪽만 적용하면 됩니다.
case1) Class에 적용
[TypeConverter(typeof(ExpandableObjectConverter))]
public class Options
{
public bool UseOpacity { get; set; }
public bool UseText { get; set; }
}
case2) Property에 적용
private Options m_Option = new Options();
[TypeConverter(typeof(ExpandableObjectConverter))]
public Options Option
{
get
{
return m_Option;
}
}
이제 원하는 그림을 얻었습니다.
출처 : http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=18&MAEULNO=8&no=1848
[Windows Forms Client 응용 프로그램과 웹페이지 스크립팅 코드 간의 양방향 통신] (0) | 2010.12.31 |
---|---|
TextBox 스크롤 하단으로 내리기 (0) | 2010.12.20 |
밀리세컨 시간동안 대기 (0) | 2010.12.17 |
모니터 영역 사이즈 구하기 (0) | 2010.12.08 |
wmi 로 하드웨어 정보 읽기 (0) | 2010.10.12 |