728x90
1. 사용자 정의 컨트롤이란 ?
C# .NET에서 사용자 정의 컨트롤은 일련의 기능을 캡슐화하고 Windows Forms 또는 ASP.NET 응용 프로그램에 쉽게 추가할 수 있는 재사용 및 사용자 지정이 가능한 구성 요소입니다. 사용자 컨트롤을 사용하면 개발자는 특정 UI(사용자 인터페이스) 및 기능 집합을 하나의 독립된 단위로 캡슐화하여 유지 관리가 가능한 모듈식 코드를 만들 수 있습니다.
2. 사용자 정의 컨트롤 만들기
새 항목 추가하기 > 사용자정의 컨트롤(windows Forms) (wpf도 할줄 알면 사용하면 된다, 방법은 똑같다.)
사진과 같이 라벨 + 텍스트박스를 추가하였다.
public partial class test : UserControl
{
public test()
{
InitializeComponent();
this.Size = new System.Drawing.Size(100, 20);
this.Font = new Font("굴림", 9);
this.MinimumSize = new System.Drawing.Size(100, 20);
this.MaximumSize = new System.Drawing.Size(166, 20);
}
[Category("Test")]
public string LabelText
{
get
{
return this.label1.Text;
}
set
{
this.label1.Text = value;
}
}
[Category("Test")]
public string TextBoxText
{
get
{
return this.textBox1.Text;
}
set
{
this.textBox1.Text = value;
}
}
public enum KIND
{
text1 = 1,
test2 = 2,
test3 = 3,
}
[Category("Test"), Description("test1 = 1, test2 = 2, test3 = 3 등등 메모")]
public KIND Kind { get; set; }
}
전체 소스는 이렇다
빌드 하면 도구상자에서 내가 만든 test 컨트롤을 사용할 수 있게 된다.
this.Size = new System.Drawing.Size(100, 20);
this.Font = new Font("굴림", 9);
this.MinimumSize = new System.Drawing.Size(100, 20);
this.MaximumSize = new System.Drawing.Size(166, 20);
test 컨트롤의 기본 사이즈, 폰트 등을 설정 한다.
[Category("Test")]
public string LabelText
{
get
{
return this.label1.Text;
}
set
{
this.label1.Text = value;
}
}
[Category("Test")]
public string TextBoxText
{
get
{
return this.textBox1.Text;
}
set
{
this.textBox1.Text = value;
}
}
Category 는 속성에서 해당 텍스트로 그룹화를 하기 위해 사용 한다.
LabelText, TextBoxText 에 get, set 기능을 부여한다.
test 컨트롤을 2개 추가 하였고 하나의 속성만 변경 하였다.
위와 같이 LabelText : 라벨, TextBoxText : 텍스트박스 의 속성을 부여하게 되면
사용자 정의 컨트롤에 적용이 된다.
public enum KIND
{
text1 = 1,
test2 = 2,
test3 = 3,
}
[Category("Test"), Description("test1 = 1, test2 = 2, test3 = 3 등등 메모")]
public KIND Kind { get; set; }
속성창에서 콤보박스를 사용 하기 위해 사용한다.
Description 에 적은 것은 속성창 최 하단에 설명으로 나타난다.
[Description("값변경대면"), Category("이벤트")]
public event EventHandler ValueChange;
private void EditValueChanged(object sender, EventArgs e)
{
if (ValueChange != null)
{
Invoke(ValueChange, null);
}
}
와 같이 이벤트를 만들어서 적용 시킬 수 도 있다.
728x90
'C#' 카테고리의 다른 글
C# DataTable - 삽입, 복제 등등의 응용 방법 (0) | 2024.01.25 |
---|---|
C# DataTable 사용법 - 컬럼생성, 데이터 삽입, 데이터 조회 (0) | 2024.01.25 |
C# 파일 열기 (0) | 2021.06.10 |
C# 파일 저장 (0) | 2021.06.10 |
C# MdiChildren 폼 호출시 화면 깜빡이는현상 (0) | 2021.03.12 |