레이블이 #닷넷교육인 게시물을 표시합니다. 모든 게시물 표시
레이블이 #닷넷교육인 게시물을 표시합니다. 모든 게시물 표시

2021년 11월 6일 토요일

C# 윈폼(TrackBar, ProgressBar)

 C# 윈폼(TrackBar, ProgressBar)


실습을 위해 프로젝트를 하나 생성하자. (Windows Forms Application)


1. Form의 속성(F4)중 Text속성을 “TrackBar, ProgressBar 컨트롤 테스트”로 하자.


2. 아래와 같이 컨트롤을 배치하자.(툴 박스가 안 보인다면 View > Toolbox를 클릭)


WRkg75_Md6uPKp99HWyM0oNpBsY4Yg3saL23PQ1B



3. 컨트롤을 위한 이벤트 처리용 메소드를 만들자. 


public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        //TrackBar 컨트롤의 속성(F4)에서 번개그림을 눌러 해당 이벤트를 더블클릭

        private void trb1_Scroll(object sender, EventArgs e)

        {

    trb1.Maximum = 100;

            prb1.Maximum = 100;

            prb1.Value = trb1.Value;

        }


        //버튼(btnStart) 컨트롤의 속성(F4)에서 번개그림을 눌러 Click 이벤트를 더블클릭

        private void btnStart_Click(object sender, EventArgs e)

        {

            prb1.Maximum = int.Parse(txtLoopCount.Text);

            prb1.Step = int.Parse(txtLoopCount.Text)/100;

            for(int i = 0; i <= int.Parse(txtLoopCount.Text); i++) {

                prb1.Value = i;

            }

        }

    }


16suQVoipN_tup6jHLyx3FzV4-ae4z2ISlIc4hzL

 

 

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

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

        }

    }

}

 

qTszagV65n8n5RwblP2bVicMUI7Y-iTc4Kwr5wfK

#윈폼, #시샵윈폼, #winform, #winform교육, #닷넷교육 

C# 윈폼, Form클래스 속성

 C# 윈폼, Form클래스 속성

 

8-3. C# 윈폼(Form클래스)


C# 프로그램이 윈도우 응용프로그램이 되기 위해서는 Form 클래스를 상속받아서 정의되어야 한다. Form 클래스는 운영체제가 보내는 메시지 중 일부 메시지에 대해 이벤트를 구현하고 있는데 사용자가 윈도우 폼에서 왼쪽 마우스를 클릭하면 WM_LBUTTONDOWN 메시지가 Form객체로 전달되고 Form 객체는 이에 대해 MouseDown 이벤트를 발생시킨다.


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


class OnjForm : Form {

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

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

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

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

       MessageBox.Show (“안녕~”);

      }

      public OnjForm() {

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

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

      }

}


//MouseDown 이벤트 선언

public event MouseEventHandler MouseDown;


//MouseEventHandler 델리게이트 선언

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



 

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

 



8-4. C# 윈폼(Form클래스 – 속성)


Form 클래스는 윈도우 모양을 결정짓는 크기, 배경색, 전경색, 투명도, 제목, 이름, 폰트 등 여러 속성을 가지고 있다.


Width : 창의너비, Height : 창 높이, BackColor : 배경색, BackgroudImage : 윈도우 배경이미지

Opacity : 투명도(0.00~1.00, 1:완전불투명, 0 : 완전투명), MaxmizeBox : 최대화 버튼 표시 여부

MinimizeBox : 최소화 버튼 표시 여부

Text : 창의 제목, Name : 윈도우 이름


using System;

using System.Drawing;

using System.Windows.Forms;

 

namespace ConsoleApplication9

{   

    class Program : Form

    {

        Random r;

        public Program()

        {

            r = new Random();

            this.MouseWheel += new MouseEventHandler(OnjMouseWheel);

            this.MouseDown += new MouseEventHandler(OnjMouseDown);

        }

 

//마우스 다운 이벤트 처리 메소드

        void OnjMouseDown(object sender, MouseEventArgs e)

        {

            //촤측 마우스 버튼 클릭이면

            if (e.Button == MouseButtons.Left)

            {

                //최대화, 최소화 버튼 보이기

                this.MaximizeBox = true;

                this.MinimizeBox = true;

                Color oldcolor = this.BackColor;

                //배경색을 임의의 색으로 변경

                this.BackColor = Color.FromArgb(r.Next(0, 255),

                                                r.Next(0, 255),

                                                r.Next(0, 255));

            }

            //우측 마우스 버튼 클릭이면

            if (e.Button == MouseButtons.Right)

            {

                //최대화, 최소화 버튼 숨기기

                this.MaximizeBox = false;

                this.MinimizeBox = false;

            }

        }

 

//마우스 휠 이벤트 처리 메소드

        void OnjMouseWheel(object sender, MouseEventArgs e)

        {

            //마우스휠 움직이는 것에 따라 윈도우 투명도 조절

            this.Opacity = this.Opacity + (e.Delta > 0 ? 0.1 : -0.1);

            Console.WriteLine("Opacity : {0}", this.Opacity);

        }

        static void Main(string[] args)

        {

            Application.Run(new Program());

        }

    }

}

#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...