본문 바로가기

   
Programming/Winform

컨트롤(Control)

반응형

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace WindowsForms01

{

       public partial class Control01 : Form

       {

             //부모컨트롤 - 자식컨트롤

             //컨테이너 컨트롤 : 자신의 영역내에 다른 컨트롤을 추가할수 있는 컨트롤.

             //(추가된 컨트롤 == 자식 컨트롤)

             private Button btn = new Button();

             public Control01()

             {

                    InitializeComponent();

             }

 

             private void button1_Click(object sender, EventArgs e)

             {

                    //폼의 자식들을 관리하고 있다(컨트롤)

                    //this.button1 : 폼에 던져진 컨트롤은 자동으로 폼클래스의 멤버변수 추가된다.

                    // - this.컨트롤Name으로 접근 가능

                    // - 컨트롤은 컬렉션 형태이다.

 

                    Control.ControlCollection cc = this.Controls;

 

                    MessageBox.Show(cc.Count.ToString());

             }

 

             private void button2_Click(object sender, EventArgs e)

             {

                    //동적으로 컨트롤을 추가하기

                    //1. 컨트롤 생성하기

                    // - 컨트롤은 이미 화면 상에 보여져 있는 누군가의 자식으로 들어가야 한다.

                   

                   

                    //1.5 컨트롤 속성 지정하기

                    btn.Text = "동적 생성된 버튼";

                    btn.Size = new Size(150, 50);

                    btn.Location = new Point(50, 150);

 

                    //1.6 동적으로 이벤트 추가

                    btn.Click += new EventHandler(btn_Click);

 

                    //2. 이미 화면에 보이는 컨테이너 컨트롤의 자식으로 추가하기

                    this.Controls.Add(btn);

 

             }

 

             void btn_Click(object sender, EventArgs e)

             {

                    //동적으로 추가된 버튼이 클릭될떄 발생

                    MessageBox.Show("~");

             }

 

             private void button3_Click(object sender, EventArgs e)

             {

                    //컨트롤 삭제하기

                    // - this.Controls : 컬렉션

                    //   Add() : 자식으로추가

                    //   Remove() : 삭제

                    //this.button1.Hide(); : 값이 현재 보존되고 있는 상태 : 기존에 있는 컨트롤 아예 삭제

                    //

                    this.Controls.Remove(btn);

                   

             }

 

             private void button4_Click(object sender, EventArgs e)

             {

                    //Panel의 자식으로 컨트롤 추가하기

                    //자식을 갖는 요소들은 거의 끝에 s가 붙는다.

                    TextBox txt = new TextBox();

                    txt.Location = new Point(10, 10);

 

                    this.panel1.Controls.Add(txt);

             }

       }

}

 

 




반응형