2015년 10월 7일 수요일

[닷넷강좌]C#으로 윈폼 만들기(Form클래스 – 폼에 컨트롤 올리기)

[닷넷강좌]C#으로 윈폼 만들기(Form클래스 – 폼에 컨트롤 올리기)

윈도우 운영체제는 사용자 인터페이스를 위해 메뉴, 콤보 박스, 리스트 , 버튼, 텍스트박스 등과 같은 표준 컨트롤을 제공한다. 닷넷의 윈폼은 이들 표준컨트롤을 윈도우 위에 쉽게 올릴 수 있도록 포장해 두었다.
이번에는 콘솔 프로그램 형태로 직접 컨트롤을 생성해서 폼 위에 올려보자. 다음과 같은 방법으로 하면 된다.
- 컨트롤의 인스턴스 생성
- 컨트롤의 프로퍼티(속성) 설정
- 컨트롤의 이벤트에 이벤트 처리기 등록
- 폼에 컨트롤 추가
<!--[if ppt]-->-<!--[endif]-->
1.컨트롤의 인스턴스 생성
<!--[if ppt]--><!--[endif]-->
    WinForm의 모든 컨트롤은 System.Windows.Forms.Control을 상속받아 만든다. 이 형식이
    모든 윈도우의 컨트롤이 지원해야 하는 그래픽이나, 동작, 이벤트 등을 제공하기에 컨트롤을
    상속받는 어떤 클래스라도 윈폼 위에 올려 윈도우 UI를 구성할 수 있다.
    Button button1 = new Button();

2. 컨트롤의 프로퍼티에 값 설정
    button1.Text = “메시지”;
    button1.Left = 50; 
    button1.Top = 50;
3. 컨트롤의 이벤트에 이벤트 처리 메소드 등록
    사용자가 버튼을 클릭하면 메시지 박스를 띄우자.
    button1.Click += (object sender, EventArgs e) =>
                         {
                               MessageBox.Show(“버튼 클릭~”);
                          };
4. 폼에 컨트롤 추가
    Program p = new Program();
    p.Controls.Add(button1);
    Application.Run(  p  );

using System;
using System.Drawing;
using System.Windows.Forms;
namespace ConsoleApplication9
{
    class Program : Form
    {
        static void Main(string[] args)
        {
            Button button1 = new Button();
            button1.Text = "메시지";
            button1.Left = 50;
            button1.Top = 50;
            button1.Click += (object sender, EventArgs e) =>
                         {
                             MessageBox.Show("버튼 클릭~");
                         };
            Button button2 = new Button();
            button2.Text = "종료";
            button2.Left = 150;
            button2.Top = 50;

            
            button2.Click += (object sender, EventArgs e) =>
            {
                MessageBox.Show("종료됩니다.~");
                Application.Exit();
            };
            Program p = new Program();
            p.Text = "윈폼 버튼 예제";  //윈도우 타이틀
            p.Height = 150;
            p.Controls.Add(button1);
            p.Controls.Add(button2);
            Application.Run(p);
        }
    }
}



댓글 없음:

댓글 쓰기