C#

[ C# ] WinForms Tag 속성

채린.__. 2025. 6. 17. 10:43

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 타입)
  • 이벤트나 조건 분기에 유용하게 쓰임