반응형
윈폼 템플릿 없이 윈폼 프로그램을 만드는 방법
템플릿을 사용하지 않고도 윈폼 프로그램을 만들 수 있을까? 정답은 Yes이다. 콘솔 애플리케이션으로 윈폼 프로그램을 만들어보면 윈폼 프로그램의 구조를 알 수 있다. 예제로 콘솔 애플리케이션으로 두 개의 버튼이 있는 윈폼 프로그램을 작성해보자.
우선 콘솔 애플리케이션에서 폼을 사용하려면 프로젝트의 참조에 System.Window.Forms와 System.Drawing을 추가해야한다. 솔루션 탐색기에서 참조 우클릭 -> 참조 추가를 하거나, 맨 위의 메뉴에서 프로젝트 -> 참조 추가를 클릭해서 2개의 참조를 추가해주자.
using System;
using System.Drawing;
using System.Windows.Forms;
namespace _20200819_002
{
class Program
{
static void Main(string[] args)
{
CreateMyForm();
}
private static void CreateMyForm()
{
Form form1 = new Form(); // 새로운 폼 객체를 만들고 이름을 form1으로 한다.
Button button1 = new Button(); // 2개의 버튼 객체를 만들고 button1과 button2로 이름을 준다.
Button button2 = new Button();
button1.Text = "OK"; // button1의 Text 속성을 "OK"로한다. 이렇게하면 버튼 위에 "OK"라는 글자가 나타난다.
button1.Location = new Point(10, 10); // button1의 위치를 정해주기위해 Location 속성을 new Point(10, 10)으로 설정한다. 버튼의 좌상단 좌표가 (10, 10)이 된다.
button2.Text = "Cancel"; // button2의 Text 속성을 "Cancel"로 한다. 버튼 위에 "Cancel" 라는 글자가 나타난다.
button2.Location = new Point(button1.Left, button1.Height + button1.Top + 10); // button2의 위치를 button1아래 10만큼 떨어진 곳으로 설정한다.
form1.Text = "My Dialog Box"; // form1의 Text 속성을 "My Dialog Box"로 설정한다. 폼의 타이틀이 바뀌어져 있을 것이다.
button1.Click += Button1_Click; // 버튼 클릭은 맽 밑에 메서드로 추가되어있다
form1.FormBorderStyle = FormBorderStyle.FixedDialog;
form1.StartPosition = FormStartPosition.CenterScreen;
// 폼에 버튼 추가하기
form1.Controls.Add(button1);
form1.Controls.Add(button2);
//폼에 모달 다이아로그 박스를 보여주기
form1.ShowDialog(); // form1을 띄워서 form1과 그 안에 있는 버튼을 볼 수 있다.
}
private static void Button1_Click(object sender, EventArgs e)
{
MessageBox.Show("OK Button을 클릭했습니다"); // 버튼을 클릭했을때 출력하는 메세지를 설정해준다.
}
}
}
위의 코드를 그대로 복사해서 프로그램을 실행해보자.
아래 이미지처럼 콘솔창이 나오고, My Dialog Box 폼이 생긴다. 이때, OK 버튼을 클릭하면 메시지박스가 나타난다.
이와같이 윈폼 템플릿을 사용하지 않고도 윈폼 프로그램을 만들 수 있다. 하지만 윈폼 템플릿을 사용하는 것이 더 편하므로 앞으로는 윈폼 템플릿을 사용하도록 하자.
반응형
'개발자과정준비 > WinForm' 카테고리의 다른 글
[Winform] 윈폼 복습 2. MouseLeave, MouseMove, DoubleClick 이벤트 (0) | 2020.08.20 |
---|---|
[Winform] 윈폼 복습 1. 프로젝트의 생성 (0) | 2020.08.19 |
[WinForm] 윈폼 소코반 만들기(푸쉬푸쉬 게임 만들기) (0) | 2020.07.20 |
[WinForm] 윈폼과 DB연동 - 북렌탈샵 (0) | 2020.07.14 |
[WinForm] 6. 윈폼과 SSMS 연동(3) (0) | 2020.06.23 |