Tag 속성: WinForms에서 거의 **모든 컨트롤(Control)**이 가지고 있는 범용적인 데이터 저장소
✅ Tag란?
- object 타입으로 정의된 속성
- 어떤 형식의 데이터든 저장 가능
- 주로 컨트롤에 부가 정보나 ID값, 임시 상태값을 저장할 때 사용함
🔹 예시 코드 설명
btnSearch1.Tag = 1;
btnSearch2.Tag = 2;
- btnSearch1 버튼의 Tag에 숫자 1을 저장
- btnSearch2 버튼의 Tag에 숫자 2를 저장
→ 이걸 활용해서 나중에 어떤 버튼이 눌렸는지 구분할 수 있음
🔹 활용 예: 하나의 이벤트 핸들러에서 여러 버튼 처리
private void btnSearch_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
int tagValue = Convert.ToInt32(btn.Tag);
switch (tagValue)
{
case 1:
MessageBox.Show("btnSearch1 클릭됨");
break;
case 2:
MessageBox.Show("btnSearch2 클릭됨");
break;
}
}
- 버튼마다 Tag를 다르게 지정해두고
- 클릭 시 sender.Tag로 분기 처리 가능
🔸 Tag에 저장할 수 있는 것들
예시 값 설명
| int, string | 단순 숫자나 텍스트 |
| object | 구조체, 클래스 등 복합 객체 |
| DataRow, DTO | 행 데이터나 모델 객체 |
| null | 초기화 안 해도 무관 |
✅ 요약
- Tag는 컨트롤에 데이터를 잠깐 붙여두는 데 쓰는 속성
- 형식 제한 없음 (object 타입)
- 이벤트나 조건 분기에 유용하게 쓰임
'C#' 카테고리의 다른 글
| C# | 디자인패턴 싱글톤 (0) | 2025.06.05 |
|---|---|
| [C#] 비모달- Show() 과 모달-ShowDialog() 의 차이 (0) | 2025.05.22 |
| [ C# ] ToolStripContainer 컨트롤 - 윈폼 레이아웃 컨테이너 컨트롤 (0) | 2025.05.22 |
| [ C# ] SuspendLayout, ResumeLayout - 폼/컨트롤의 레이아웃 계산을 일시 중단하기 (0) | 2025.05.21 |
| C# 인터넷 또는 제한 영역에 있거나 파일에 웹 표시가 있으므로 처리할 수 없습니다. (0) | 2025.05.15 |