Tag 속성을 이용하여 RadioButton 사용 코딩 줄이기 #1 - C#
Software/C#2023. 4. 25. 16:26
반응형
C++ 빌더 툴을 사용하다가 C#으로 전환하면서 하나 불편한 부분이 바로 RadioButton 이었습니다.
빌더 툴에서 RadioGroup 라는 컴포넌트가 있어서 RadioGroup 의 Index 속성을 이용하여 코딩을 줄일 수가 있었는데 C#에는 그와 같은 컴포넌트가 없어서 너무 불편했습니다.
아래 그림처럼 RadioButton 을 만들었을 경우
일반적으로는 아래의 코드처럼 각각의 메뉴에 이벤트를 만들어 사용하게 됩니다.
public partial class Form1 : Form
{
enum Meat{등심,안심,갈비}
private Meat _selectedMeat;
public Form1()
{
InitializeComponent();
}
private void radioButton1_Click(object sender, EventArgs e)
{
this._selectedMeat = Meat.등심;
DisplayMenu();
}
private void radioButton2_Click(object sender, EventArgs e)
{
this._selectedMeat = Meat.안심;
DisplayMenu();
}
private void radioButton3_Click(object sender, EventArgs e)
{
this._selectedMeat = Meat.갈비;
DisplayMenu();
}
private void DisplayMenu()
{
lblMsg.Text = string.Format("{0} 메뉴를 선택하셨습니다.", this._selectedMeat.ToString());
}
}
위의 코드를 Tag 속성을 이용해서 간단하게 줄여 보겠습니다.
먼저 메뉴 항목의 각 RadioButton Tag 속성을 (등심:0, 안심:1, 갈비:2) 로 설정합니다.
그리고 3개의 RadioButton Click이벤트를 각각 만들지 말고 하나의 동일한 이벤트 함수를 만들어 공유 합니다.
코드는 아래와 같습니다.
public partial class Form1 : Form
{
string[] Meat = { "등심", "안심", "갈비" };
public Form1()
{
InitializeComponent();
}
private void RadioButton_Click(object sender, EventArgs e)
{
var select = int.Parse( (sender as RadioButton).Tag.ToString() );
lblMsg.Text = string.Format("{0} 메뉴를 선택하셨습니다.", Meat[select]);
}
}
4개의 함수가 하나의 함수로 줄어들고 코드도 2줄로 확 줄었습니다.
이렇게 Tag를 이용하면 차후에 Switch 구문을 사용하여 코딩하기도 굉장히 쉽습이다.
반응형
'Software > C#' 카테고리의 다른 글
Stopwatch 를 이용한 Timeout 기능 구현 - C# (0) | 2023.08.23 |
---|---|
OpenCVSharp 카메라 제어 #5 ( Auto Focusing ) (0) | 2023.07.27 |
시리얼 통신에서의 async await 사용 - C# (0) | 2023.03.28 |
Cool Muscle(마쓰루) 모터제어 클래스 C# (0) | 2023.03.22 |
VIC-D 시리즈 (엠에프씨코리아 ) 제어 클래스 C# (0) | 2023.03.22 |
댓글()