본문 바로가기

.NET/C#

Windows Forms의 시작

728x90
반응형

이제 드디어 거무스스르한 커맨드 창을 벗어나 윈도우창에서 테스트를 할 시간이 왔습니다. 왠지 기분이 도스를 쓰다가 윈도우 95가 나와서 새로운 환경을 경험하는 느낌이 드네요. 윈도우 응용 프로그램를 만드는 시작과 간단한 응용을 공부해 볼것인데요. 우선 윈도우 폼 응용 프로그램을 만드는 방법부터 나가보려고 합니다.

우선 프로젝트를 새로 만들겠습니다. 그러면 다음과 같은 화면이 나옵니다.


그럼 여기서 Windows Forms 응용 프로그램을 지정하고 이름을 입력후 확인을 누립니다. 그러면 다음과 같은 폼이 나타나죠.

이 화면이 윈도우 응용 프로그램을 만드는 첫 시작입니다. 솔루션 탐색기에서 program.cs를 열어 보시면 다음과 같이 입력되어 있는걸 보실수 있죠.

    1 using System;

    2 using System.Collections.Generic;

    3 using System.Linq;

    4 using System.Windows.Forms;

    5 

    6 namespace Windows_Test

    7 {

    8     static class Program

    9     {

   10         /// <summary>

   11         /// 해당 응용 프로그램의 주 진입점입니다.

   12         /// </summary>

   13         [STAThread]

   14         static void Main()

   15         {

   16             Application.EnableVisualStyles();

   17             Application.SetCompatibleTextRenderingDefault(false);

   18             Application.Run(new Form1());

   19         }

   20     }

   21 }

자동으로 윈도우 폼을 뛰울수 있게 Application.Run를 실행 하는 것을 볼수가 있습니다. Run을 통해서 실제로 폼이 띄워지는 것입니다. 16줄의 EnableVisualStyles는 스타일에 영향을 주고 17줄의 SetCompatibleTextRenderingDefault는 설정을 기본으로 맞춰주는 역할을 한다고 MSDN에 써 있는데 솔직히 잘은 모르겠네요. 저건 빼도 실행은 되긴 합니다. 물론 약간 디자인쪽에서 문제가 생기는것 같더군요.(혹시 이거에 대해서 잘 아시는분은 덧글 부탁드립니다 ^^)
이상태에서 Ctrl + F5로 실행을 시키면 아무것도 없는 폼이 다음과 같이 뜨는것을 볼수 있습니다.


그럼 이 폼을 이용해서 아주 간단한 테스트를 해보도록 하겠습니다. Form1.cs[디자인] 이곳으로 탭을 옮기고 여기에 컨트롤들을 넣어보도록 하겠습니다. 도구상자에 보시면 상당히 많은 컨트롤들이 있음을 볼 수 있지요. 혹시 도구상자가 안보이시는 분은 [메뉴]-[보기] 에 보시면 도구상자가 있습니다. 그것을 클릭하시면 도구상자가 보이게 될것입니다. 그럼 컨트롤을 삽입해보겠습니다. 도구 상자에서 버튼을 클릭후 그것을 폼에 드래그 해보세요. 다음과 같이 될것입니다.

이런식으로 버튼을 3개를 만들어 보겠습니다. 그리고 크기 조절이 가능하니 적당한 크기로 크기를 조절합니다. 그럼 다음과 같은 화면이 구성됩니다.

그리고 페널 컨트롤을 하나 더 가져다 넣습니다.

각 컨트롤의 속성을 정의해 보도록하죠. 각 컨트롤을 누르고 속성 탭을 봐보면 각 컨트롤의 속성을 정의할수가 있습니다. 이름, 색, text 많은 속성을 정의 할 수 있죠. 컨트롤의 아이디, text, 색을 조금씩 수정하도록 하죠 버튼은 각 순서대로 btnRed, btnGreen, btnBlue로 그리고 text는 Red, Green, Blue로 바꾸겠습니다. 패널은 pnlCanvas라는 아이디로 지정하고 배경색을 흰색으로 바꾸겠습니다. 그럼 다음과 같은 디자인이 나오게 됩니다...이쁜 디자인은 아니지만 참고 봐주세요 ^^

눈치 빠르신 분은 벌써 뭘 하려고 하는지 눈치 채신분도 있을겁니다. 뭔가하니 버튼을 눌렀을 때 해당 버튼의 써져 있는 색갈로 패널의 배경색을 바꾸려고 합니다. 그러자면 Event 처리를 해야만 가능하겠죠. 해당 버튼이 눌렀을때 해당 색으로 패널을 꾸며라 라는......윈도우 프로그램에서는 상당히 쉽게 이벤트를 다룰수가 있죠. cmd에서 처럼 따로 이벤트를 지정하거나 할 필요가 없습니다. 이벤트 지정 방법은 해당 버튼을 클릭하고 속성에서 번개 표시를 누르면 해당되는 이벤트들이 잔뜩 나오게 됩니다. 거기서 클릭이벤트를 할꺼니 Click를 더블 클릭하면 이벤트가 자동으로 생성 됩니다. 또는 이벤트를 따오고 싶은 버튼을 더블클릭해도 클릭이벤트가 생기게 되지요

위 그림이 이벤트 생성을 위해 이벤트를 찾아 들어가는 모습입니다. Red를 클릭하고 속성에 이벤트로 들어가면 볼수 있지요 ^^

그럼 3개의 버튼에 다 클릭 이벤트를 생성 하도록 하죠 그러면 Form1.cs에 빈 이벤트가 각 버튼의 이름으로 생겨나게 됩니다. 다음과 같이요.

    1 using System;

    2 using System.Collections.Generic;

    3 using System.ComponentModel;

    4 using System.Data;

    5 using System.Drawing;

    6 using System.Linq;

    7 using System.Text;

    8 using System.Windows.Forms;

    9 

   10 namespace Windows_Test

   11 {

   12     public partial class Form1 : Form

   13     {

   14         public Form1()

   15         {

   16             InitializeComponent();

   17         }

   18 

   19         private void btnRed_Click(object sender, EventArgs e)

   20         {

   21 

   22         }

   23 

   24         private void btnGreen_Click(object sender, EventArgs e)

   25         {

   26 

   27         }

   28 

   29         private void btnBlue_Click(object sender, EventArgs e)

   30         {

   31 

   32         }

   33     }

   34 }

윈도우 프로그램에서는 참조가 좀 많습니다. 그래픽에 관한것들 폼에 관한것들을 처리하기 위해서 cmd에서 처리보다 많은 참조가 필요하기 때문이죠~.

위에처럼 해당 이벤트가 생겨났죠. 현재는 이벤트에 동작이 들어가 있지 않아서 실행해도 아무 일이 안일어 날겁니다. 그럼 다음과 같이 동작을 입력해 보도록 하겠습니다.

    1 public partial class Form1 : Form

    2  {

    3     public Form1()

    4     {

    5         InitializeComponent();

    6     }

    7 

    8     private void btnRed_Click(object sender, EventArgs e)

    9     {

   10         pnlCanvas.BackColor = Color.Red;

   11     }

   12 

   13     private void btnGreen_Click(object sender, EventArgs e)

   14     {

   15         pnlCanvas.BackColor = Color.Green;

   16     }

   17 

   18     private void btnBlue_Click(object sender, EventArgs e)

   19     {

   20         pnlCanvas.BackColor = Color.Blue;

   21     }

   22  }

패널의 배경색을 넣어주는 코드를 각 이벤트에 넣어주었습니다. 그럼 이것을 실행을 하게 위에서 꾸민 디자인의 폼이 나타날것입니다. 거기서 각 버튼을 클릭하게 되면...와~~색깔이 마구 바뀌는걸 볼수가 있습니다.
첫 윈도우 프로그램이라면 대단하다는 생각을 가지게 될겁니다. 드로그 몇번하고 클릭 몇번하고 간단한 명령어 몇줄 적었더니 저런것이 만들어 지다니...정말 감탄하게 되지요. 이렇게 되는 것은 비주얼스튜디오에서 윈도우 프로그램을 만들때 이미 많은 작업을 미리 해주게 됩니다. 그래서 우리가 해야될 일을 많이 줄여준 것이지요. 폼 생성 및 버튼 생성 위치 작업까지 원래 개발자의 역할이지만 그것을 스듀디오가 알아서 작업을 해준다는 것입니다. 참 쉽게 되는거죠. ^ㅡ^

어떠신가요??  간단한 윈도우 창을 하나 띄워서 간단히 테스트를 해보았는데요. 아마 어렵지 않았을 겁니다. 저도 여기까지는 참 쉽다 생각했으니깐요 ^^

앞으로도 더 힘차고 쉽게 공부해보도록 하겠습니다. ^^
감사합니다~~

728x90
반응형

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

try~catch문(예외처리)  (3) 2010.10.14
스레드 정보 알아오기...  (0) 2010.10.12
C# 소수(Prime Number) 찾기  (0) 2010.10.12
C# 프로세스 목록 알아오기  (1) 2010.10.11
Thread 란?  (0) 2010.10.10
C# Event  (0) 2010.01.18
C# delegate  (0) 2010.01.14
FileAndDirectory  (0) 2010.01.12
C# File Input/Output  (1) 2009.12.24
C# Collection  (0) 2009.12.21