④ C# 프로젝트 -11 자동생성한 버튼 수정 및 해당 버튼 작동하기 == Edit auto-generated buttons and work with those buttons
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 = "버튼 삭제하기";
}
}
}
}