본문 바로가기

C#/윈폼

C# 윈폼 프로젝트 생성 / button event


1. Windows Forms 어플리케이션

Windows Forms, 줄여서 윈폼이라고 부른다. 윈도우 프로그램을 만들기 위한 UI 및 상호작용을 위한 프로젝트로 이해한다. 해당 포스트는 Visual Studio 2022를 기준으로 만들어졌다.

2. 프로젝트 생성

1번은 새로 생성 / 2번은 이미 있는 프로젝트에서 생성 이다.
파일 > 새로 만들기 > 프로젝트 순으로 클릭한다.

해당 목록에서 Windows Forms 앱을 선택하거나 검색을 활용하여 클릭한다. 
사진상 Windows Forms 앱 항목이 2개가 있는데, Windows Forms 앱과 (.NET Framework) 가 있는 Windows Forms 이다.
이는 .NET Core와 .NET Framework 의 차이인데,
1. .NET Framework
- 현재 업데이트가 끝난 4.8 버전이 마지막이다.
- 윈도우 환경에서 구동된다.
- 다양한 기능과 확장성이 있다.
- UWP 및 WPF를 사용하여 빌드할 수 있다.
2. .NET Core
- 지속적으로 개발중이다.
- 윈도우, 리눅스, mac OS 모두 사용이 가능하다.
- 브라우저 기반 웹 응용프로그램을 작성하는데 사용한다.
- Docker 사용 가능
안정적이고 빠른 개발을 위한 환경에서는 .NET Framework를 사용한다.

프로젝트 이름과 저장위치, 솔루션 이름, 프레임워크를 지정한 뒤 만들기 클릭

생성시 해당 화면이 나온다. 만약 좌측 도구상자가 안나온다면 보기에서 도구상자를 클릭한다.

생성된 프로젝트의 우측을 보면 솔루션 탐색기가 있다.
기본적인 형태는 WindowsFormsApp : 프로젝트 명이다. 하위에는 설정을 위한 Properties 폴더와 참조가 있다.
- Program.cs : 윈폼 응용 프로그램의 시작점을 포함하는 C# 소스파일

- Form1.cs : 윈폼 응용 프로그램의 C# 소스 파일

- Form1.Designer.cs : 윈폼 응용 프로그램 폼 디자인 정의를 포함하는 C# 소스파일

- WindowsApplication1.csproj : 윈폼 응용프로그램 프로젝트 파일

- Properties/AssemblyInfo.cs : 프로젝트가 생성하는 어셈블리를 설명하고 버전 관리 정보를 
지정하는 데, 사용하며, 애트리뷰트 정의를 포함하는 C# 소스파일

- Properties/Resources.resx : 윈폼 응용 프로그램의 자원 파일

- Properties/Settings.Designer.cs : 프로젝트 설정에 대한 C# 정의를 포함하는 C# 소스파일

- Properties/Settings.settings : 프로젝트에 대한 설정 파일​

3. 예제

Form1을 클릭하면 도구상자에 여러가지 항목이 나온다.
Button 을 드래그앤드랍해서 Form1에 올려놓는다.

올려진 button1을 더블클릭시 Form1.cs 소스 파일이 자동으로 오픈된다.
Form1 클래스는 Form 클래스를 상속받고 있다. 해당 클래스는 외형을 설정하는 프로퍼티, 폼의 동작 메서드, 상호작용을 위한 이벤트가 정의되어 있는 클래스이다.
하단의 button1_Click 메서드가 button1의 이벤트이다.

MessageBox.Show("Hello world"); 코드를 추가했다. 해당 메서드는 메시지창을 띄우는 구문이다. 작성 후 F5 또는 상단의 시작버튼을 누르면 어플리케이션이 작동한다.

정상적으로 실행되면 위와 같은 폼이 나오고 button1 을 클릭하면 새로운 창 Hello world 가 나타나는 예제이다.

3-1 속성 바꾸기

만약 버튼의 text 를 바꾸고 싶다면 다시 디자인으로 돌아와 버튼을 클릭 후 우측 하단의 속성 탭에서 변경이 가능하다. Text 란에 임의의 문자를 입력한다면

이처럼 작성한 대로 Text 가 바뀌는 것을 확인할 수 있다.

 

(Name) 항목의 값을 변경하면 버튼이 소스 코드에서 참조되는 이름을 바꿀 수 있다.
해당 코드는 버튼이 클릭되면 버튼의 색상이 바뀌는 코드이다.

버튼이 클릭될시 좌측에서 우측으로 변경된 것을 확인 할 수 있다.

해당 이미지는 Form1.Designer.cs의 일부분이다. 해당 부분에서 위 속성에서 변경한 내용을 소스 코드로써 수정도 할 수 있다. 

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

C# 윈폼 윈도우 멀티쓰레딩  (0) 2023.07.14
C# 윈폼 BackgroundWorker  (0) 2023.07.14
C# 윈폼 컨트롤 다루기 3  (0) 2023.07.13
C# 윈폼 컨트롤 다루기 2  (1) 2023.07.13
C# 윈폼 컨트롤 다루기  (0) 2023.07.12