본문 바로가기
Program Language/C#(GUI)

[C# WinForm] RadioButton 사용하기

by 토담이아빠 2023. 3. 3.

RadioButton 사용하기

 

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의 이름과 동일한 색상으로 텍스트 색상을 설정합니다. 이렇게 하면 사용자가 선택한 색상에 따라 라벨의 텍스트 색상이 변경됩니다.

 

실행 결과

 

위 코드를 실행하면 다음과 같이 나타납니다.


 

라디오버튼 별 클릭 결과


 

댓글