프로그래밍 기술/Windows Form 응용 프로그램

3.1.3 Form1 구현 [Windows Forms 응용 프로그램]

언제나휴일 2016. 4. 6. 12:02
반응형

3.1.3 Form1 구현

 

 이제 작성한 ColorSelectorControl을 사용하는 Form1 을 구현합시다. 먼저 자식 컨트롤을 배치하세요.


Form1 자식 컨트롤 배치

[그림 3.6] Form1 자식 컨트롤 배치

 

 위쪽에 ColorSelector 컨트롤을 배치하고 아래쪽에 변경할 때 사용할 컨트롤들을 배치하세요.

 

 

 

No

Name

컨트롤 형식

설명

1

colorsel

ColorSelectorControl

색상 변경 사용자 정의 컨트롤

2

tbox_red

TextBox

Red 색상 정보 표시 및 입력

3

btn_red

Button

Red 색상 변경

4

tbox_green

TextBox

Green 색상 정보 표시 및 입력

5

btn_green

Button

Green 색상 변경

6

tbox_blue

TextBox

Blue 색상 정보 표시 및 입력

7

btn_blue

Button

Blue 색상 변경

8

btn_all

Button

전체 색상 변경

[ 3.2] Form1 의 자식 컨트롤

 

 ColorSelectorControl colorsel ColorChanged 이벤트 핸들러를 등록하세요.

private void colorsel_ColorChanged(object sender, ColorChangeEventArgs e)

{

 컨트롤의 색상 속성을 이용하여 TextBox Text 속성을 설정합니다.

    tbox_red.Text = e.Red.ToString();

    tbox_green.Text = e.Green.ToString();

    tbox_blue.Text = e.Blue.ToString();

}

버튼의 클릭 이벤트 핸들러를 등록하여 colorsel  개체의 색상 정보를 변경하는 메서드인 Change___ 메서드를 호출합니다.

private void btn_red_Click(object sender, EventArgs e)

{

    int r = colorsel.Red;

    int.TryParse(tbox_red.Text, out r);

    colorsel.ChangeRed(r);

}

 특별하게 다르게 처리하지도 않으며 바로 이어서 Form1.cs 소스 내용이 있어서 이하 생략할게요.

... 중략 ...

 

Form1.cs

using System;

using System.Windows.Forms;

 

namespace Ex_사용자_정의_컨트롤

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        void colorsel_ColorChanged(object sender, ColorChangeEventArgs e)

        {

            tbox_red.Text = e.Red.ToString();

            tbox_green.Text = e.Green.ToString();

            tbox_blue.Text = e.Blue.ToString();

        }

        private void btn_red_Click(object sender, EventArgs e)

        {

            int r = colorsel.Red;

            int.TryParse(tbox_red.Text, out r);

            colorsel.ChangeRed(r); 

        }

        private void btn_green_Click(object sender, EventArgs e)

        {

            int g = colorsel.Green;

            int.TryParse(tbox_green.Text, out g);

 

            colorsel.ChangeGreen(g); 

        }

        private void btn_blue_Click(object sender, EventArgs e)

        {

            int b = colorsel.Blue;

            int.TryParse(tbox_blue.Text, out b);

            colorsel.ChangeBlue(b); 

        }

        private void btn_all_Click(object sender, EventArgs e)

        {

            int r = colorsel.Red;

            int g = colorsel.Green;

            int b = colorsel.Blue;

 

            int.TryParse(tbox_red.Text, out r);

            int.TryParse(tbox_green.Text, out g);

            int.TryParse(tbox_blue.Text, out b);

            colorsel.ChangeColor(r, g, b);

        }

    }

}

 

반응형