본문 바로가기
프로그래밍/④ C#프로젝트

④ C# 프로젝트 -10 자동으로 추가한 버튼 삭제하기 == Deleting an automatically added button

by ronul 2017. 7. 20.
300x250

C# 프로젝트 -9와 10 에 이어서 추가한 버튼을 삭제 하는것을 만들었습니다.

삭제하기 버튼을 누르면 버튼의 text들이 바뀌고 textbox에 삭제하고 싶은 버튼의 명을 입력하게 되면

해당버튼이 삭제가 됩니다.

이것도 if문과 for문을 사용해 해당 버튼이 있는지를 확인하고 있으면 삭제되는 메시지창 없으면 버튼이 없다는 메시지 창이 뜨게됩니다.

flowLayoutPanel1.Controls.RemoveAt(i);
buttonGroup.RemoveAt(i);

위 두 가지코드는 버튼을 삭제하고 판넬에 있는 버튼도 삭제를 시켜줍니다 
여기서 버튼을 삭제하더라도 view는 멈추게 됩니다. 그래서 flowPannel 에서도 삭제를 시켜주어야합니다.

코드입니다.

 

 


 

 

 

 

 

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;
        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 (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)
        {
            MessageBox.Show("버튼이 눌렸습니다.");
        }
        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

댓글