본문 바로가기
개발언어/C#

[C#] 윈폼 버튼 동적으로 생성하기(Dynamic Button)

by 창용이랑 2021. 4. 13.
728x90

출처 : afsdzvcx123.tistory.com/entry/C-%EC%9C%88%ED%8F%BC-%EC%9C%88%ED%8F%BC-%EB%B2%84%ED%8A%BC-%EB%8F%99%EC%A0%81%EC%9C%BC%EB%A1%9C-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0Dynamic-Button

 

[C# 윈폼] 윈폼 버튼 동적으로 생성하기(Dynamic Button)

안녕하세요. 오늘은 C# 윈폼에서 버튼 컨트롤을 동적으로 생성하는 방법에 대해서 알려드리려고 합니다. 큰 어려움 없기 때문에 다른 부연 설명없이 바로 예제 코드를 통해서 어떻게 버튼을 동

afsdzvcx123.tistory.com

 

안녕하세요.

 

오늘은 C# 윈폼에서 버튼 컨트롤을 동적으로 생성하는 방법에 대해서 알려드리려고 합니다.

 

큰 어려움 없기 때문에 다른 부연 설명없이 바로 예제 코드를 통해서 어떻게 버튼을 동적으로 생성하는지 보여드리도록 하겠습니다.

 

 

 

 

먼저 아래와 같이 빈폼 프로젝트 하나를 생성해 주시기 바랍니다.

 

빈폼 프로젝트 생성

 

 

 

예제 코드

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 DynamicButton
{
    public partial class Form1 : Form
    {
        public int WIDTH = 0;
        public int HEIGHT = 0; 

        public Form1()
        {
            InitializeComponent();

            this.Load += DynamicButton_Load;
        } 

        public void DynamicButton_Load(object sender, EventArgs e)
        {
            DynamicButton();
        } 

        /// <summary>
        /// 버튼 컨트롤 동적으로 생성하기
        /// </summary>
        public void DynamicButton()
        {
            Control[] BTN = new Control[10];
            FlowLayoutPanel flp = new FlowLayoutPanel(); 

            for (int idx = 0; idx < 10; idx++)
            {
                BTN[idx] = new Button();
                BTN[idx].Name = idx.ToString();
                BTN[idx].Parent = this;
                BTN[idx].Size = new Size(90, 30);
                int x = idx + 1;
                BTN[idx].Text = "Dynamic_" + x.ToString(); 

                WIDTH += 80;
                HEIGHT += 30; 

                flp.Controls.Add(BTN[idx]);
            } 

            this.Controls.Add(flp);
            flp.Dock = DockStyle.Fill;
        }
    }
}

 

실행 결과 

 

 

 

위와 같이 FlowLayoutPanel에 총 10개의 버튼이 동적으로 알맞게 생성된 것을 확인하실 수 있습니다.^^

 

위의 DynamicButton 메서드 내용을 잘 이해하시면 여러가지로 유용하게 사용하실 수 있을 거에요~~

 

감사합니다!^^