RadioButton 컨트롤은 여러 개의 옵션 중에서 하나를 선택하는 데 사용됩니다. RadioButton 컨트롤은 사용자가 선택한 옵션에 따라 프로그램의 동작을 변경하는 데 유용합니다. 이번 포스팅에서는 RadioButton 컨트롤을 사용하여 선택한 색상에 따라 텍스트의 색상이 변경되는 간단한 예제를 만들어 보겠습니다.
폼 디자인 하기
RadioButton은 일반적으로 그룹박스와 함께 사용됩니다. 그룹 박스(GroupBox)는 RadioButton 컨트롤을 묶어서 그룹으로 만들어 줍니다. 이렇게 하면 사용자가 RadioButton 중 하나를 선택하면 그룹 박스 내에서 다른 RadioButton 컨트롤의 선택이 자동으로 해제됩니다.
먼저 다음과 같이 RadioButton , Groupbox, Label 컨트롤을 배치하고 각 속성을 설정합니다.
속성
1. Form1
- Text : RadioButton 사용하기
2. groupBox1
- Text : 색상 선택
3. radioButton1
- (Name) : radioButtonRed
- Text : 빨간색
4. radioButton2
- (Name) : radioButtonGreen
- Text : 초록색
5. radioButton3
- (Name) : radioButtonBlue
- Text : 초록색
6. label1
- (Name) : labelColor
- Text : " "
Form1.Designer.cs 작성하기
속성 설정이 끝났으면 빨간색 radio 버튼을 더블클릭하여 Form1.cs 파일에 radioButtonRed_CheckedChanged 이벤트 함수를 생성시키고 Form1.Designer.cs 파일로 이동합니다.
그리고 radioButtonRed의 이벤트함수 등록 부분에서 다음과 같이 변경합니다.
this.radioButtonRed.CheckedChanged += new System.EventHandler(this.radioButtonRed_CheckedChanged);
=> this.radioButtonRed.CheckedChanged += new System.EventHandler(this.radioButton_CheckedChanged);
다른 radioButtonBlue, radioButtonGreen 컨트롤에는 CheckedChanged 이벤트함수가 등록이 안되었으므로 다음과 같이 동일한 이름의 이벤트 함수를 추가해줍니다.
//Form1.Designer.cs
//
// radioButtonRed
//
this.radioButtonRed.AutoSize = true;
this.radioButtonRed.Location = new System.Drawing.Point(7, 20);
this.radioButtonRed.Name = "radioButtonRed";
this.radioButtonRed.Size = new System.Drawing.Size(59, 16);
this.radioButtonRed.TabIndex = 0;
this.radioButtonRed.TabStop = true;
this.radioButtonRed.Text = "빨간색";
this.radioButtonRed.UseVisualStyleBackColor = true;
this.radioButtonRed.CheckedChanged += new System.EventHandler(this.radioButton_CheckedChanged);
//
// radioButtonBlue
//
...
this.radioButtonBlue.CheckedChanged += new System.EventHandler(this.radioButton_CheckedChanged);
//
// radioButtonGreen
//
...
this.radioButtonGreen.CheckedChanged += new System.EventHandler(this.radioButton_CheckedChanged);
Form1.cs 작성하기
Form1.cs 파일로 돌아와 이벤트 함수 이름을 "radioButton_CheckedChanged"로 수정하고 다음과 같이 작성합니다.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WinFormExam
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void radioButton_CheckedChanged(object sender, EventArgs e)
{
if (radioButtonRed.Checked)
{
labelColor.Text = "당신은 빨간색을 좋아합니다!";
labelColor.ForeColor = Color.Red;
}
else if (radioButtonGreen.Checked)
{
labelColor.Text = "당신은 초록색을 좋아합니다!";
labelColor.ForeColor = Color.Green;
}
else if (radioButtonBlue.Checked)
{
labelColor.Text = "당신은 파란색을 좋아합니다!";
labelColor.ForeColor = Color.Blue;
}
}
}
}
위 예제에서는 라벨의 ForeColor 속성을 사용하여 선택한 RadioButton의 이름과 동일한 색상으로 텍스트 색상을 설정합니다. 이렇게 하면 사용자가 선택한 색상에 따라 라벨의 텍스트 색상이 변경됩니다.
실행 결과
위 코드를 실행하면 다음과 같이 나타납니다.
'Program Language > C#(GUI)' 카테고리의 다른 글
[C# Winform] 성적 계산기 만들기 (11) | 2023.07.28 |
---|---|
[C# Winform] 로그인 창 만들기 (9) | 2023.03.09 |
[C# WinForm] CheckBox 사용하기 (11) | 2023.02.20 |
[C# WinForm] TextBox / Label / Button Control (16) | 2023.02.14 |
[C# WinForm] 다양한 메시지 박스 생성하기 (25) | 2023.02.06 |
댓글