프로그래밍/④ C#프로젝트

④ C# 프로젝트 -11 자동생성한 버튼 수정 및 해당 버튼 작동하기 == Edit auto-generated buttons and work with those buttons

ronul 2017. 7. 21. 14:05
300x250

C# 프로젝트 - 8,9,10 에 이어 생성한 버튼을 클릭하면 해당 버튼의 text를 찾아서 그 버튼을 작동 시킬 수 있는 소스입니다.

버튼을 누르면 update 즉 수정이 되게 했습니다.

자동생성한 버튼을 누르면 텍스트 박스에 누른 버튼의 이름이 나옵니다.

그러면 그텍스트 박스에 변경하고 싶은 이름을 입력하고 수정하기를 누르면 해당 버튼의 이름이 변경되도록 했습니다.

 


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;
using System.Threading;


namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public List<Button> buttonGroup = new List<Button>();
        Boolean hwak = false;
        string btnName;
        public Form1()
        {
            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (button1.Text.Equals("버튼 추가하기"))
            {

                if (txtbox.Text.Equals("") || txtbox.Text.Equals("버튼의 이름을 입력하세요"))
                {
                    MessageBox.Show("버튼 이름을 입력하세요");
                }
               
                else
                {
                    for (int i = 0; i < buttonGroup.Count; i++)
                    {
                        if (buttonGroup[i].Name.Equals(txtbox.Text + "Btn"))
                        {
                            hwak = true;
                        }

                    }
                    if (hwak == true)
                    {
                        MessageBox.Show("해당 버튼의 이름이 있습니다.");
                        hwak = false;
                    }
                    else
                    {
                        buttonGroup.Add(new Button());
                        buttonGroup.Last().Name = txtbox.Text + "Btn";
                        buttonGroup.Last().Text = txtbox.Text;
                        buttonGroup.Last().Font = new System.Drawing.Font("맑은 고딕", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(50)));
                        this.flowLayoutPanel1.Controls.Add(buttonGroup.Last());
                        buttonGroup.Last().Click += new EventHandler(Btn_Click);
                        buttonGroup.Last().Visible = true;
                    }
                }
            }
            else if (button1.Text.Equals("수정하기"))
            {
                if (txtbox.Text.Equals("") || txtbox.Text.Equals("버튼의 이름을 입력하세요"))
                {
                    MessageBox.Show("버튼 이름을 입력하세요");
                }
                else
                {

                    for (int i = 0; i < buttonGroup.Count; i++)
                    {
                        if (buttonGroup[i].Text.Equals(btnName))
                        {
                            buttonGroup[i].Text = txtbox.Text;
                           
                        }
                    }
                    txtbox.Text = "";
                    button1.Text = "버튼 추가하기";
                    button2.Text = "버튼 삭제하기";
                    MessageBox.Show("수정되었습니다.");

                }
            }
            else
            {
                if (txtbox.Text.Equals("") || txtbox.Text.Equals("버튼의 이름을 입력하세요"))
                {
                    MessageBox.Show("버튼 이름을 입력하세요");
                }
                else
                {
                    for (int i = 0; i < buttonGroup.Count; i++)
                    {
                        if (buttonGroup[i].Text.Equals(txtbox.Text))
                        {
                            flowLayoutPanel1.Controls.RemoveAt(i);
                            buttonGroup.RemoveAt(i);
                            hwak = true;
                        }
                    }
                    if (hwak == true)
                    {
                        MessageBox.Show("해당 버튼이 삭제되었습니다.");
                        button1.Text = "버튼 추가하기";
                        button2.Text = "버튼 삭제하기";
                        txtbox.Text = "";
                        hwak = false;
               
                    }
                    else
                    {
                        hwak = false;
                        MessageBox.Show("해당 버튼이 없습니다.");
                    }


                }
            }
        }

        public void Btn_Click(object sender, EventArgs e)
        {
           
            Button btn = sender as Button;
          
            btnName = btn.Text;
            txtbox.Text = btn.Text;

            for (int i = 0; i < buttonGroup.Count; i++)
            {
                if (buttonGroup[i].Text.Equals(btnName))
                {
                    button1.Text = "수정하기";
                    button2.Text = "취소";
                }
            }

        }
        private void txtbox_MouseClick(object sender, MouseEventArgs e)
        {
            txtbox.Text = "";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (button1.Text.Equals("버튼 추가하기"))
            {
                button1.Text = "버튼 삭제실행";
                button2.Text = "취소";
            }
            else
            {
                txtbox.Text = "";
                button1.Text = "버튼 추가하기";
                button2.Text = "버튼 삭제하기";

            }
        }
      
    }
}

 

300x250