레이블이 컨트롤인 게시물을 표시합니다. 모든 게시물 표시
레이블이 컨트롤인 게시물을 표시합니다. 모든 게시물 표시

2022년 2월 26일 토요일

(동영상)C# 윈폼, Form 클래스 Form 이벤트 처리방법 Form에 컨트롤 올리기 원리

 

(C#동영상)C# 윈폼, Form 클래스  Form 이벤트 처리방법  Form에 컨트롤 올리기 원리, C#학원, WPF학원, 자바학원, 스프링학원

https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-iZCqT52CtVOhmaR6Nd-65M163g9u-&index=6 



http://ojc.asia/bbs/board.php?bo_table=LecCsharp&wr_id=429 


(동영상)C# 윈폼, Form 클래스 Form 이벤트 처리방법 Form에 컨트롤 올리기 원리

(동영상)C# 윈폼, Form 클래스 Form 이벤트 처리방법 Form에 컨트롤 올리기 원리윈폼, Form 클래스Form 이벤트 처리방법Form에 컨트롤 올리기 원리C# 윈폼(Form클래스)C# 프로그램이 윈도우 응용프로그램이

ojc.asia

https://www.youtube.com/watch?v=xlu8n59OE5U&list=PLxU-iZCqT52CtVOhmaR6Nd-65M163g9u-&index=8 

윈폼, Form 클래스

Form 이벤트 처리방법

Form에 컨트롤 올리기 원리





C# 윈폼(Form클래스)


C# 프로그램이 윈도우 응용프로그램이 되기 위해서는 Form 클래스를 상속받아서 정의되어야 한다. 


또한 Form 클래스는 운영체제가 보내는 메시지 중 일부 메시지에 대해 이벤트를 구현하고 있는데 예를들면, 사용자가 윈도우 폼에서 왼쪽 마우스를 클릭하면 WM_LBUTTONDOWN 메시지가 Form 객체로 전달되고 Form 객체는 이에 대해 MouseDown 이벤트를 발생시킨다.



윈폼 응용프로그램을 작성하는 경우 직접 윈도우 메시지를 처리하는 경우는 드물다. 왜냐하면 Form을 비롯한 윈도우와 각종 컨트롤들이 윈도우 메시지를 포장하여 이벤트로 구현해 놓았기 때문이다. 프로그래머는 단지 정의되어 있는 이벤트에 이벤트처리 메소드를 등록시키기만 하면 된다.


//MouseDown 이벤트 선언

public event MouseEventHandler MouseDown;


//MouseEventHandler 델리게이트 선언

public delegate void MouseEventHandler (object sender, MouseEventArgs e);


class MyForm : Form {

      //이벤트 처리 메서드, sender : 이벤트가 발생한 객체, 여기서는 Form, 

      //MouseEventArgs는 Button(마우스의 어떤 버튼인지), Clicks(클릭한 횟수)

      //Delta(휠의 회전방향과 거리), X(X좌표), Y(Y좌표)값을 가진다.

      private void mousedown (Object sender, System.Windows.Forms.MouseEventArgs e) {

       MessageBox.Show (“마우스클릭~”);

      }

      public MyForm() {

             //Mousedown 이벤트에 MouseEventHandler 델리게이트를 통해 mousedown 메소드를 MouseDown 이벤트 처리 메소드로 등록한다.

             this.Mousedown += new System.Windows.Forms.MouseEventHandler(this.mousedown);

      }

}






[실습]


using System;

using System.Windows.Forms;


class Program : Form

    {

        public void MouseHandler(object sender, MouseEventArgs e)

        {

            Console.WriteLine("Sender : " + ((Form)sender).Text);

            Console.WriteLine("Sender : " + ((Form)sender).Name);

            Console.WriteLine("X:{0}, Y:{1}", e.X, e.Y);

            Console.WriteLine("Button:{0}, Clicks:{1}", e.Button, e.Clicks);

        }

        public Program(String title)

        {

            this.Text = title;

            this.Name = "윈폼";

            //MouseDown 이벤트 처리기 등록

            this.MouseDown += new MouseEventHandler(MouseHandler);

        }

        static void Main(string[] args)

        {

            Application.Run( new Program("마우스 이벤트 예제"));            

        }

    }


[결과]

Sender : 마우스 이벤트 예제

Sender : 윈폼

X:122, Y:50

Button:Left, Clicks:1





C# 윈폼(Form클래스 – 폼에 컨트롤 올리기)



윈도우 운영체제는 사용자 인터페이스를 위해 메뉴, 콤보 박스, 리스트 뷰, 버튼, 텍스트박스 등과 같은 표준 컨트롤을 제공한다. 닷넷의 윈폼은 이들 표준컨트롤을 윈도우 위에 쉽게 올릴 수 있도록 포장해 두었다.


이번에는 콘솔 프로그램 형태로 직접 컨트롤을 생성해서 폼 위에 올려보자. 다음과 같은 방법으로 하면 된다.


  •  컨트롤의 인스턴스 생성
  •  컨트롤의 프로퍼티(속성) 설정
  •  컨트롤의 이벤트에 이벤트 처리기 등록
  •  폼에 컨트롤 추가


1. 컨트롤의 인스턴스 생성


    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.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);

        }

    }

}




#시샵동영상, #윈폼, #Form클래스, #Form이벤트, #컨트롤, #시샵교육, #시샵동영상, #닷넷교육, #닷넷동영상, 시샵동영상, 윈폼, Form클래스, Form이벤트, 컨트롤, 시샵교육, 시샵동영상, 닷넷교육, 닷넷동영상,  

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...