달나라 노트

C# : CheckBox 본문

C#/C#

C# : CheckBox

CosmosProject 2022. 4. 3. 23:11
728x90
반응형

 

 

 

CheckBox class는 Window에 체크박스를 띄울 수 있도록 해줍니다.

 

using System;
using System.Windows.Forms;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        CheckBox chk_box = new CheckBox();
        chk_box.Parent = fm;
        chk_box.Width = 200;
        chk_box.Height = 20;
        chk_box.Text = "Sample Check Box";


        Application.Run(fm);
    }
}

 

위 코드를 실행하면 위 이미지처럼 체크박스가 Window에 생깁니다.

 

코드를 부분별로 해석해봅시다.

 

        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

버튼을 만들려면 버튼이 들어갈 Window를 생성해야겠죠.

따라서 위 부분에서 Form class를 이용해 fm 객체를 생성합니다.

Form 객체는 Window를 생성하는 객체입니다.

 

그리고 Width, Height 옵션을 통해 Window의 가로 길이(Height)를 500으로, 세로 길이(Height)를 300으로 설정합니다.

 

 

 

 

        CheckBox chk_box = new CheckBox();
        chk_box.Parent = fm;
        chk_box.Width = 200;
        chk_box.Height = 20;
        chk_box.Text = "Sample Check Box";

 

그 다음은 CheckBox를 생성하는 부분입니다.

 

- CheckBox chk_box = new CheckBox();

CheckBox class를 이용해서 chk_box 객체를 생성합니다.

 

- chk_box.Parent = fm;

Check Box가 표시될 위치는 Window의 내부입니다.

따라서 Check Box의 Parent를 fm(Window)로 설정해줍니다.


- chk_box.Width = 200;
- chk_box.Height = 20;

Width 옵션은 체크 박스의 가로 길이를 설정해줍니다.

Height 옵션은 체크 박스의 세로 길이를 설정해줍니다.


- chk_box.Text = "Sample Check Box";

Text 옵션은 체크 박스에 표시될 텍스트를 설정해줍니다.

 

 

 

 

        Application.Run(fm);

그리고 fm 객체를 실행합니다.

 

 

여기까지가 Check Box의 기본입니다.

 

 

 

 

 

1. Checked

Checked 옵션은 체크 박스가 체크되어있는지 여부를 나타냅니다.

Checked = true --> 체크된 상태

Checked = false --> 체크 해제된 상태

 

using System;
using System.Windows.Forms;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        CheckBox chk_box = new CheckBox();
        chk_box.Parent = fm;
        chk_box.Width = 200;
        chk_box.Height = 20;
        chk_box.Text = "Sample Check Box";
        chk_box.Checked = true;


        Application.Run(fm);
    }
}

 

Checked의 기본값은 false입니다. 그래서 Check Box를 생성하면 Window가 열릴 때에는 체크가 해제된 상태로 표시됩니다.

하지만 위 예시처럼 Checked를 true로 설정하면 Window를 열었을 때 체크 박스가 체크된 상태로 보여집니다.

 

 

 

 

 

 

2. Enabled

Enabled 옵션은 Check Box의 활성화 여부를 결정합니다.

Enabled = true --> Radio Button 활성화된 상태 (클릭 가능한 상태)

Enabled = false --> Radio Button 비활성화된 상태 (클릭 불가능한 상태)

 

using System;
using System.Windows.Forms;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        CheckBox chk_box = new CheckBox();
        chk_box.Parent = fm;
        chk_box.Width = 200;
        chk_box.Height = 20;
        chk_box.Text = "Sample Check Box";
        chk_box.Enabled = false;


        Application.Run(fm);
    }
}

 

위 코드를 실행하면 아래 이미지처럼 Check Box가 비활성화되어 클릭이 불가능한 상태가 됩니다.

 

 

        chk_box.Enabled = false;

그 이유는 위처럼 radio_btn_2의 Enabled 옵션을 false로 설정했기 때문입니다.

 

 

 

 

 

3. BackColor

Button의 BackColor 옵션은 버튼의 배경 색을 설정해줍니다.

 

using System;
using System.Windows.Forms;
using System.Drawing;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        CheckBox chk_box = new CheckBox();
        chk_box.Parent = fm;
        chk_box.Width = 200;
        chk_box.Height = 20;
        chk_box.Text = "Sample Check Box";
        chk_box.BackColor = Color.Gray;


        Application.Run(fm);
    }
}

 

- chk_box.BackColor = Color.Gray;

BackColor 옵션을 회색(Gray)로 설정하였습니다.

따라서 위 이미지처럼 체크 박스의 배경색이 회색으로 채워진 것을 볼 수 있습니다.

 

 

 

 

4. Font

Font 옵션은 Check Box에 표시되는 글자의 글씨체, 글씨 크기, 글자 스타일을 정할 수 있게 해줍니다.

 

using System;
using System.Windows.Forms;
using System.Drawing;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        CheckBox chk_box = new CheckBox();
        chk_box.Parent = fm;
        chk_box.Width = 250;
        chk_box.Height = 30;
        chk_box.Text = "Sample Check Box";
        chk_box.Font = new Font("Arial", 15, FontStyle.Italic);


        Application.Run(fm);
    }
}

 


- chk_box.Font = new Font("Arial", 15, FontStyle.Italic);
Font 설정 부분은 위와 같습니다.
Font 설정은 특이하게 Font 옵션에 Font class를 할당하여 설정할 수 있습니다.

Font class에는 3개의 인자가 들어갈 수 있습니다.
첫 번째 인자 = "Arial" -> 글씨체
두 번째 인자 = 15 -> 글씨 크기
세 번째 인자 = FontStyle.Italic -> 글씨 스타일​​

여기서 FontStyle은 System.Drawing.FontStyle 구조로 되어있는 라이브러리로부터 불러와지는 것입니다.

Font 설정에 사용할 수 있는 주요한 글씨체 옵션은 다음과 같습니다.

 

Font Description
Regular 글씨 스타일 설정 없음
Bold 굵은 글씨체
Italic 기울어진 글씨체
Unerline 밑줄쳐진 글씨체
Strikeout 중간 취소선이 그어진 글씨체

 

 

 

 

 

5. ForeColor

ForeColor 옵션은 글자의 색상을 설정합니다.

 

using System;
using System.Windows.Forms;
using System.Drawing;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        CheckBox chk_box = new CheckBox();
        chk_box.Parent = fm;
        chk_box.Width = 250;
        chk_box.Height = 30;
        chk_box.Text = "Sample Check Box";
        chk_box.ForeColor = Color.Blue;


        Application.Run(fm);
    }
}

 

 

- chk_box.ForeColor = Color.Blue;

위 예시에서 ForeColor를 Blue로 설정했으므로 텍스트가 파란색으로 표시되는걸 볼 수 있습니다.

 

근데 Color.Blue라는 건 어디서 온걸까요?

 

using System.Drawing;

위 예시를 보면 Syste.Drawing 라이브러리를 불러온 것을 볼 수 있습니다.

꾸미는 작업을 하기 위해선 여러 가지 색상등을 불러와야하는데 색상관련 정보는 System.Drawing 라이브러리에 있습니다.

따라서 Color.Blue도 사실 구조가 System.Drawing.Color.Blue 이렇게 되어있는 것입니다.

 

때표적으로 System.Drawing.Color.색상 을 통해 사용할 수 있는 대표적인 색상은 아래와 같습니다.

 

Color Code Description
Black 검정색
White 흰색
Gray 회색
Red 빨간색
Yello 노란색
Green 초록색
Blue 파란색
Cyan 시안색

 

 

 

 

 

 

6. AutoSize

AutoSize 옵션에는 true, false 값을 할당할 수 있습니다.

AutoSize = ture -> 글씨 크기에 맞춰 Bitton 크기를 자동으로 조절한다.

AutoSize = false -> 글씨 크기와 상관없이 Button 크기를 별도로 지정합니다.

 

using System;
using System.Windows.Forms;
using System.Drawing;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        CheckBox chk_box = new CheckBox();
        chk_box.Parent = fm;
        chk_box.Text = "Sample Check Box";
        chk_box.AutoSize = false;


        Application.Run(fm);
    }
}

 

 

AutoSize 옵션을 true로 설정한 경우 위 이미지처럼 Sample Check Box 텍스트가 모두 보이지 않습니다.

Check Box의 크기가 글자보다 작아서 표시되는 글자가 줄바꿈되고 잘린 것입니다.

 

 

 

 

 

using System;
using System.Windows.Forms;
using System.Drawing;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        CheckBox chk_box = new CheckBox();
        chk_box.Parent = fm;
        chk_box.Text = "Sample Check Box";
        chk_box.AutoSize = true;


        Application.Run(fm);
    }
}

 

AutoSize 옵션을 true로 설정하면 위처럼 Check Box의 크기가 표시되어야할 Text의 크기에 맞춰서 자동으로 조절됩니다.

그래서 Sample Check Box라는 텍스트가 모두 보이는 것을 알 수 있죠.

 

 

 

 

여기까지 해서 Check Box에 적용할 수 있는 여러 옵션들을 알아봤습니다.

 

Check Box의 서식(배경색, 글씨 색상, 글꼴 등)을 지정하는 옵션은 Label에서 지정할 수 있는 옵션과 비슷합니다.

따라서 아래 링크를 참고해보는 것도 좋습니다.

 

https://cosmosproject.tistory.com/554

 

C# : Label (Text Box, 텍스트 박스, 구조체, Structure)

C#에서 Label은 텍스트를 표시해주는 역할을 합니다. 텍스트 박스라고 보면 될거같습니다. Label을 어떻게 사용하는지와 Label 객체에 적용할 수 있는 여러 설정들(글씨 색깔, 글씨 정렬 등)을 알아봅

cosmosproject.tistory.com

 

 

 

 

 

 

 

 

 

 

아래 예시는 Check Box의 체크 여부가 바뀔 때 마다 Event가 발생하도록 한 것입니다.

체크박스의 체크 여부가 바뀌면 체크박스에 표시되는 글자가 바뀝니다.

 

 

using System;
using System.Windows.Forms;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        CheckBox chk_box = new CheckBox();
        chk_box.Parent = fm;
        chk_box.Width = 200;
        chk_box.Height = 20;
        chk_box.Text = "Sample Check Box";

        void chk_box_event_check(object sender, EventArgs e)
        {
            if (chk_box.Checked == true)
            {
                chk_box.Text = "Checked";
            }
            else if (chk_box.Checked == false)
            {
                chk_box.Text = "Unchecked";
            }
            else
            {
                chk_box.Text = "None";
            }
        }
        chk_box.CheckedChanged += new EventHandler(chk_box_event_check);


        Application.Run(fm);
    }
}

 

위 코드를 실행하면 아래와 같은 화면이 뜹니다.

 

 

 

체크 박스를 클릭하면 아래처럼 텍스트가 Checked로 바뀝니다.

 

그리고 체크를 해제하면 아래처럼 Unchecked라는 텍스트가 표시됩니다.

 

 

Event Handler 부분을 봅시다.

 

        void chk_box_event_check(object sender, EventArgs e)
        {
            if (chk_box.Checked == true)
            {
                chk_box.Text = "Checked";
            }
            else if (chk_box.Checked == false)
            {
                chk_box.Text = "Unchecked";
            }
            else
            {
                chk_box.Text = "None";
            }
        }

 

먼저 Event가 발생했을 때 어떤 동작을 할지에 대한 내용을 담은 method를 생성해야합니다.

 

위 코드를 보면 체크 여부의 현재 상태(chk_box.Checked)에 따라 Text를 설정하는 내용을 가지고 있습니다.

 

체크 박스가 체크되어있으면 (chk_box.Checked = true) Text를 Checked로 바꿉니다.

체크 박스가 체크 해제되어있으면 (chk_box.Checked = false) Text를 Unchecked로 바꿉니다.

 

그리고 else 구문은 혹시라도 Checked 값을 제대로 불러오지 못할 경우 에러가 발생할 수 있기 때문에 적어둔 것이라서 별로 신경안써도 됩니다.

 

 

 

 

 

 

728x90
반응형
Comments