작성날짜 : 2011-04-04 |
참고 : http://msdn.microsoft.com/ko-kr/library/8bxxy49h.aspx
선문 비트 프로젝트 : http://cafe.daum.net/smbitpro
Form 개요
Forms이란 관리화 되는 .NET Framework를 위한 스마트 클라이언트 기술입니다. .NET Framework에는 그리기, 파일 I/O,데이터 바인딩 등의 일반 응용 프로그램에서의 작업을 단순화하는 관리화된 라이브러리들이 있어 적은 비용으로도 효과적인 응용 프로그램을 제작할 수 있습니다.
응용 프로그램의 사용자 인터페이스를 구성하는 창을 Form이라 하며 이는 UI 디자인 요소인 컨트롤 클래스로부터 파생이 되었습니다.
Form 클래스는 응용 프로그램의 사용자 인터페이스를 구성하는 창에 해당하는 클래스입니다.
Form 클래스는 파생이 가능한 클래스로 생성자와 속성, 메서드, 이벤트 등으로 구성되어 있습니다.
Form에 속성은 배경 색, 배치되는 화면 좌표, 크기, 활성화 여부, 화면 표시 여부등을 얻어오거나 설정할 수 있습니다.
Form의 메소드는 을 Form을 화면에 표시하거나 닫는 등의 Form에 대한 행위를 할 수 있습니다.
Form의 이벤트는 사용자에 의해 Form을 작동하는 등의 여러 사건에 따른 행위를 정의할 수 있습니다.
예제 프로그램
간단히 폼이 뜨고 폼에 마우스를 클릭하면 메시지 창이 뜨는 응용을 만들어 봅시다.
먼저, namespace 를 정하고 class 명을 정합니다.
namespace FirstForm { class FirstForm { } } |
Class 내에 진입점인 Main을 추가하고 Form 개체를 하나 생성합시다.
Form 클래스를 사용하기 위해서는 System.Windows.Forms 네임스페이스를 using 하여야 합니다.
using System; using System.Windows.Forms; namespace FirstForm { class FirstForm { static void Main(string[] args) { Form form = new Form(); } } } |
컴파일 해서 실행해 보면 아무런 현상이 나타나지 않음을 알 수 있습니다.
Form 개체를 생성을 하였지만 해당 개체를 화면에 보이게 하지는 않았기 때문입니다.
이번에는 Show메서드를 이용하여 화면에 보이게 해 봅시다. 그리고, Text 속성과 BackColor 속성도 원하는 값으로 설정을 해 보세요. BackColor 속성은 Color 형식의 속성으로 Color 형식을 사용하기 위해서는 System.Drawing 네임스페이스를 using하여야 합니다.
using System; using System.Windows.Forms; using System.Drawing; namespace FirstForm { class FirstForm { static void Main(string[] args) { Form form = new Form(); form.Text = "처음"; form.BackColor = Color.Blue; form.Show(); } } } |
파일을 한 후 실행해 보면 화면이 잠시 보였다가 바로 사라질 것입니다. 이는 form.Show(); 메소드호출 후 Main메소드의 끝을 만나 프로그램이 종료 되었기 때문입니다.
특정 폼이 닫힐 동안 응용이 실행되도록 하려면 Application클래스의 static 메서드인 Run을 호출하면서 Form 개체를 인자로 넣으면 정상적인 상황에서는 해당 폼 개체가 닫히기 전까지 응용이 닫히지 않게 됩니다.
using System; using System.Windows.Forms; using System.Drawing; namespace FirstForm { class FirstForm { static void Main(string[] args) { Form form = new Form(); form.Text = "처음"; form.BackColor = Color.Blue; form.Show(); Application.Run(form); } } } |
마지막으로 폼에 마우스를 클릭할 때 메시지 창이 뜰 수 있게 작성해 봅시다. 폼에는 수 많은 이벤트 핸들러를 추가할 수 있게 되어 있습니다. 이 중에 MouseClick은 이름을 보고 알 수 있듯이 MouseClick에 관한 이벤트 핸들러를 연결할 수 있습니다. 이벤트는 내부적으로 delegate로 되어 있다는 것을 알고 계시죠. 이를 모르신다면 delegate와 이벤트에 대한 학습을 먼저 하시기 바랍니다. Windows Forms에서는 이벤트에 대한 이해는 필수적입니다.
using System; using System.Windows.Forms; using System.Drawing; namespace FirstForm { class FirstForm { static void Main(string[] args) { Form form = new Form(); form.Text = "처음"; form.BackColor = Color.Blue; form.MouseClick += new MouseEventHandler(Form_MouseClick); form.Show(); Application.Run(form); }
static void Form_MouseClick(object sender, MouseEventArgs e) { MessageBox.Show("마우스 클릭", "테스트"); } } } |
모든 작업이 끝이 났으면 컴파일 후 실행해 보세요. 원하는 결과를 얻으실 수 있을 것입니다.
'Programming > .NET' 카테고리의 다른 글
[.NET] try-catch-finally (0) | 2015.05.19 |
---|---|
[.NET] Windows Form Timer (0) | 2015.05.19 |
[.NET] Remoting (0) | 2015.05.19 |
[.NET] marchalling (마샬링) (0) | 2015.05.19 |
[.NET] legacy (레거시) (0) | 2015.05.19 |