[winform] 사용자정의 컨트롤

728x90

사용자정의 컨트롤이란 기존의 컨트롤을 추가하거나 코드를 작성하여 자신만의 컨트롤을 만드는 것을 의미합니다.

 

1. 사용자 정의 컨트롤 만들기

사용자정의 컨트롤을 만들기 위해서는 먼저 새항목을 추가해야합니다.

 

etc-image-0

 

winform의 사용자 정의 컨트롤을 추가하면 됩니다.

 

기존의 컨트롤등을 이용하여 자신만의 컨트롤을 꾸밉니다.

etc-image-1

 

완성되었다면 Ctrl+Shift+B 를 눌러 빌드시킵니다.

 

etc-image-2

 

Form1.cs 디자인에서 도구상자를 열어보면 사용자정의 컨트롤이 만들어진 것을 확인할 수 있습니다.

 

2.사용자 정의 컨트롤 사용방법

form1.cs

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace study10
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            userControl11.Label1Text = "aaaa";

            string uc1label = userControl11.Label1Text;

            //사용자컨트롤과 이벤트 핸들러 연결
            userControl11.MyClick += new EventHandler(myFuc1);
            userControl11.MyClick += new EventHandler(myFuc2);
        }

        //외부함수1
        private void myFuc1(object sender, EventArgs e)
        {
            MessageBox.Show("함수 1");
        }
        //외부함수2
        private void myFuc2(object sender, EventArgs e)
        {
            MessageBox.Show("함수 2");
        }

    }
}

 

 

userControl1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace study10
{
    public partial class UserControl1 : UserControl
    {
        //외부에서 접근하려면 이벤트 핸들러를 생성해야함
        public EventHandler MyClick;

        public UserControl1()
        {
            InitializeComponent();
        }


       public string Label1Text
        { 
            get //getter
            {
                return this.label1.Text;
            }
            set //setter
            {
                this.label1.Text = value;
            } 
        }

        private void button1_Click(object sender, EventArgs e)
        {

            MessageBox.Show("버튼1 클릭");

            //외부 기능이 동시에 실행
            EventHandler handler = MyClick;
            if (handler != null)
            {
                handler(sender, e);
            }
        }
    }
}

 

 

'C# Programming > Winform' 카테고리의 다른 글

[winform] 컨트롤 이벤트  (0) 2024.05.16
[winform] 프로그램 배포  (0) 2024.05.16
[winform] 클래스 다이어그램 보는 법  (0) 2024.05.15
[winform] 단일 프로세스(MUTEX)  (0) 2024.05.13
[winform] 컨트롤  (0) 2024.05.13