달나라 노트

C# : Label (Text Box, 텍스트 박스, 구조체, Structure, 글자 스타일, Font, FontStyle, 폰트스타일) 본문

C#/C#

C# : Label (Text Box, 텍스트 박스, 구조체, Structure, 글자 스타일, Font, FontStyle, 폰트스타일)

CosmosProject 2022. 4. 1. 21:51
728x90
반응형

 

 

 

C#에서 Label은 텍스트를 표시해주는 역할을 합니다.

텍스트 박스라고 보면 될거같습니다.

 

Label을 어떻게 사용하는지와 Label 객체에 적용할 수 있는 여러 설정들(글씨 색깔, 글씨 정렬 등)을 알아봅시다.

 

 

아래 코드를 실행시켜봅시다.

 

using System;
using System.Windows.Forms;

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

        Label lbl = new Label();
        lbl.Parent = fm;
        lbl.Width = 100;
        lbl.Height = 50;
        lbl.Text = "Sample Text";
        

        Application.Run(fm);
    }
}

 

 

그러면 위처럼 Sample Text가 Window에 표시됩니다.

 

 

 

이제 위 코드를 순차적으로 해석해봅시다.

 

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

먼저 Form 객체 생성부분입니다.

Label은 Window의 어딘가에 표시될 것이므로 표시될 Window를 만들어야합니다.

위처럼 Form 객체를 생성해서 Window를 만들어줍니다.

Form 객체의 가로길이는 500, 세로 길이는 300으로 설정합니다.

 

 

 

        Label lbl = new Label();
        lbl.Parent = fm;
        lbl.Width = 100;
        lbl.Height = 50;
        lbl.Text = "Sample Text";

Label 객체 생성 부분입니다.

 

Label 객체는 Label class를 불러와서 생성할 수 있습니다.

 

- lbl.Parent = fm;

Label이 표시될 부분은 Window입니다. 따라서 Form 객체를 Parent로 설정해서 Label이 Form 객체에 소속되도록 합니다.

 

- lbl.Width = 100;

- lbl.Height = 50;

Label은 텍스트 박스와 비슷하다고 했습니다.

따라서 이 텍스트 박스의 가로 길이(Width)와 세로 길이(Height)를 설정할 수 있습니다.

위 예시에서는 가로 길이(Width)를 100, 세로 길이(Height)를 50으로 설정했습니다.

 

- lbl.Text = "Sample Text";

Text 옵션은 Label에 표시할 텍스트를 설정해주는 옵션입니다.

 

 

 

        Application.Run(fm);

Application을 실행합니다.

 

 

 

 

 


 

 

 

 

이제 Label 객체를 좀 더 다양하게 꾸밀 수 있는 여러 옵션들을 알아봅시다.

 

 

 

1. 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;

        Label lbl = new Label();
        lbl.Parent = fm;
        lbl.Width = 100;
        lbl.Height = 50;
        lbl.Text = "Sample Text";
        lbl.ForeColor = Color.Blue;
        

        Application.Run(fm);
    }
}

 

 

lbl.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 시안색

 

 

2. BackColor

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

 

아래 코드를 실행시켜봅시다.

 

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;

        Label lbl = new Label();
        lbl.Parent = fm;
        lbl.Width = 100;
        lbl.Height = 50;
        lbl.Text = "Sample Text";
        lbl.BackColor = Color.Gray;
        

        Application.Run(fm);
    }
}

 

 

- lbl.BackColor = Color.Gray;

BackColor를 Gray로 설정했으므로 결과 Window에서도 Label 부분의 배경이 회색으로 보이는 것을 볼 수 있습니다.

 

 

 

 

3. TextAlign

TextAlign 옵션은 텍스트의 정렬을 해줍니다.

 

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;

        Label lbl = new Label();
        lbl.Parent = fm;
        lbl.Width = 100;
        lbl.Height = 50;
        lbl.Text = "Sample Text";
        lbl.BackColor = Color.Gray;
        lbl.TextAlign = ContentAlignment.MiddleCenter;
        

        Application.Run(fm);
    }
}

 

 

- lbl.TextAlign = ContentAlignment.MiddleCenter;

TextAlign 옵션을 MiddleCenter로 설정하였습니다.

MiddleCenter는 텍스트를 Label의 정 가운데에 정렬해줍니다.

 

정렬에 사용할 수 있는 주요한 ContentAlignment 옵션은 다음과 같습니다.

Alignment Code Description
TopLeft 왼쪽 위 정렬
TopCenter 위쪽 가운데 정렬
TopRight 오른쪽 위 정렬
MiddleLeft 가운데 왼쪽 정렬
MiddleCenter 정가운데 정렬
MiddleRight 가운데 오른쪽 정렬
BottomLeft 왼쪽 아래 정렬
BottomCenter 아래쪽 가운데 정렬
BottomRight 오른쪽 아래 정렬

 

 

 

 

 

4. BorderStyle

BorderStyle 옵션은 Label의 테두리를 설정해줍니다.

 

 

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;

        Label lbl = new Label();
        lbl.Parent = fm;
        lbl.Width = 100;
        lbl.Height = 50;
        lbl.Text = "Sample Text";
        lbl.BorderStyle = BorderStyle.FixedSingle;
        

        Application.Run(fm);
    }
}

 

 

- lbl.BorderStyle = BorderStyle.FixedSingle;

BorderStyle을 BorderStyle.FixedSingle로 설정했습니다.

FixedSingle은 일반 실선을 의미합니다.

그래서 위 이미지를 보시면 Label의 테두리가 검은색 실선으로 표시된 것을 볼 수 있습니다.

 

테두리 설정에 사용할 수 있는 주요한 BorderStyle 옵션은 다음과 같습니다.

BorderStyle Code Description
None 테두리 없음
FixedSingle 실선 테두리
Fixed3D 입체 테두리

 

 

 

 

 

5. Font

Font 옵션은 글씨체, 글씨 크기, 글씨 스타일을 설정하는 옵션입니다.

 

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;

        Label lbl = new Label();
        lbl.Parent = fm;
        lbl.Width = 200;
        lbl.Height = 50;
        lbl.Text = "Sample Text";
        lbl.Font = new Font("Arial", 15, FontStyle.Italic);
        

        Application.Run(fm);
    }
}

 

 

- lbl.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 중간 취소선이 그어진 글씨체

 

 

 

 

 

 

6. AutoSize

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

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

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

 

 

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;

        Label lbl = new Label();
        lbl.Parent = fm;
        lbl.Width = 300;
        lbl.Height = 200;
        lbl.Text = "Sample Text";
        lbl.BackColor = Color.Gray;
        lbl.AutoSize = true;

        Application.Run(fm);
    }
}

 

 

- lbl.AutoSize = true;

위 예시에서 Label의 Width, Height을 보면 각각 300, 200으로 설정되어있습니다.

 

그러나 AutoSize를 true로 설정해서 Label의 크기가 글씨크기에 맞춰진걸 볼 수 있습니다.

 

이렇게 AutoSize를 true로 설정하면 내가 Label의 크기를 어떻게 설정하건 상관없이 Label 크기가 무조건 글씨 크기에 맞게 변경됩니다.

 

 

 

 

 

 

 

- 추가 : 구조체

위 예시에서 글씨 색상을 지정할 때 System.Drawing.Color.Blue 와 같은 형태로 색상을 지정했습니다.

여기서 Color.Blue같은 것은 구조체로서 C#에 기본적으로 생성되어있는 구조체(Structure)라고 합니다.

 

구조체는 아래와 같이 선언됩니다.

 

struct 구조체이름
{
    구조체 내용
}

 

구조체 속에는 여러 요소들이 있습니다.

마치 array와 비슷하게 구조체 안에 여러 요소들이 들어있다고 보면 됩니다.

다만 구조체 속 요소에 접근할 때에는 마침표(.)를 이용해서 구조체이름.구조체요소 등으로 접근할 수 있습니다.

 

Color.Blue

따라서 위 내용은 Color라는 이름의 구조체 속에 있는 Blue라는 요소를 불러온 것입니다.

 

여기서는 구조체에 대해 정확한 내용까지 모두 알 필요는 없고 구조체 속에 여러 요소가 들어있으며 마침표를 이용해서 구조체 속 요소들에 접근할 수 있다라는 내용만 알면 됩니다.

 

 

 

 

 

 

728x90
반응형

'C# > C#' 카테고리의 다른 글

C# : CheckBox  (0) 2022.04.03
C# : Button  (0) 2022.04.03
C# : Panel (FlowLayoutPanel, TableLayoutPanel, 컨트롤 배치, 소스 배치)  (0) 2022.04.01
C# : CheckBox, CheckBox Event  (0) 2022.04.01
C# : enum (Enumeration, 열거체)  (0) 2022.04.01
Comments