[C#] Windows Form 시작하기

노유성·2023년 8월 15일
0
post-thumbnail

Windows Form이란

Windows Forms는 .NET 프레임워크의 일부로서, Windows 기반 응용 프로그램을 개발하기 위한 프레임워크입니다. 이것은 시각적인 요소를 사용하여 Windows 응용 프로그램의 사용자 인터페이스를 만들 수 있게 해주는 도구 및 라이브러리의 모음입니다. Windows Forms를 사용하면 버튼, 텍스트 상자, 체크 박스 등과 같은 사용자 인터페이스 요소를 드래그 앤 드롭 방식으로 디자인하고 프로그래밍 할 수 있습니다.
Windows Forms 애플리케이션은 C# 또는 VB.NET과 같은 .NET 언어로 개발할 수 있습니다. 이를 통해 Windows 기반 응용 프로그램을 개발하고 배포할 수 있습니다.

윈도우 기반의 프로그램을 만들기 위한 프레임워크이다. c#을 이용해서 프로그래밍을 할 수 있다.

기본 화면

Visual Studio 2022에서 맨 처음에 프로젝트를 생성하면

기본으로 만들어진 파일을 볼 수 있다. Program.cs는 윈도우 폼의 entry point이다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace demo
{
    internal static class Program
    {
        /// <summary>
        /// 해당 애플리케이션의 주 진입점입니다.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

마지막 라인을 보면 Form1 클래스의 객체를 생성해서 실행함을 알 수 있다.

Form1을 클릭해보면

아무것도 없는 기본 화면을 볼 수 있다. 실행을 해보면

동일하게 아무것도 없다.

Form1을 처음 클릭해서 띄우면(실행하지 않고) [디자인]이 소스코드에 붙어있다. 이 화면에서는 UI를 작성할 수 있다. 그리고 폼을 더블클릭하면

기본 세팅이 되어있는 모습을 볼 수 있다.

class를 자세히 보면 partial class 라고 class에 제어자가 붙어있는 모습을 볼 수 있다

이는 For1.Designer.cs 파일에서도 동일하다. 이는 두 class가 원래는 합쳐져서 하나의 기능을 하는데 프레임워크 단에서 개발자들이 UI의 구성 및 상대적인 위치 등 디자인적인 요소를 신경쓰지 않고 오로지 로직에만 집중할 수 있게 분할을 해두었기 때문이다.

보기 탭에서 도구 상자를 추가하면 이렇게 화면에 UI를 추가할 수 있다.

그리고 우측 하단에 property 탭에서 UI요소를 디자인하고 설정을 변경할 수 있다. 위 화면 전체 틀에 대한 속성이며, text 설정 값을 변경하면

UI의 타이틀을 변경할 수 있다.

속성에는

(Name)이라는 속성이 있는데 이는 특정 UI요소를 담는 변수의 이름이라고 볼 수 있다. 그래서 기본적으로 제공되는 이름을 담는 것이 아니라 각 요소가 담당하는 기능에 맞게 이름을 설정해주어야 한다.

예제

로그인을 하는 예제를 만들어보자.


위 화면에서 버튼이나 레이블, input창이 클릭이 되었을 때 web 개발 때와 마찬가지로 클릭 이벤트가 발생한다. 그러면 이벤트를 다루는 이벤트 핸들러가 있을 것이다.
여기서 OK버튼을 더블클릭하면,

해당 버튼의 클릭 리스너를 다루는 메소드로 넘어갈 수 있다.

namespace demo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if(txtusername.Text == "admin" && txtPw.Text == "1234")
            {
                MessageBox.Show("로그인 성공");
            }
            else
            {
                MessageBox.Show("로그인 실패");
            }
        }
    }
}

간단하게 id가 admin이고 pw가 1234이면 로그인 성공 메세지 박스를 띄우는 예제를 만들었다. 실행을 해보면

조건에 맞으면 이런 화면을 아닐 때는

이런 화면을 띄운다.

Form을 디자인을 하면 From.Designer.cs 파일에 자동적으로 디자인의 내용에 대해서 정리가 된다. 그리고 UI를 더블클릭하면 핸들러 함수를 볼 수 있고 원하는 비즈니스 로직을 끼워넣을 수 있다. 그리고 사용하지 않더라도 만들어진 핸들러 메소드를 제거하면은 컴파일 오류가 발생할 수도 있으니 자동으로 프레임워크에서 생성한 메소드는 웬만하면 건들지 말자.

profile
풀스택개발자가되고싶습니다:)

0개의 댓글