Я разрабатываю проект, который требует большого количества кнопок. Но мне нужно для какой-то кнопки удалить предыдущие. Например, когда я нажимаю первую кнопку на этапе 1, я хочу, чтобы она удалила себя, а другую - на этапе 1, а те, что на этапе 2, отображаются. Я пытаюсь это сделать отдельно от моего реального проекта, потому что я уже пробовал с очередями, списками и кортежами.
Как я могу это сделать? Выглядит довольно просто, но добиться этого было действительно сложно. Код компилируется, когда я нажимаю кнопку, появляются другие, но я не могу удалить их или сделать их невидимыми. Как я могу это сделать? Заранее спасибо!
//Creates buttons on stage one
for (int i = 0; i < 2; i++)
{
Button button = new Button();
button.Location = new Point(20, 30 * i + 10);
button.Visible = true;
button.Text = "stage1";
switch (i)
{
case 0:
button.Click += new EventHandler(ButtonClick);
break;
case 1:
button.Click += new EventHandler(ButtonClick2);
break;
}
this.Controls.Add(button);
}
}
void ButtonClick(object sender, EventArgs e)
{
// First Button Clicked
// Creates buttons on stage 2
for (int i = 0; i < 2; i++)
{
Button button = new Button();
button.Location = new Point(200, 30 * i + 10);
button.Visible = true;
button.Text = "stage2";
switch (i)
{
case 0:
button.Click += new EventHandler(ButtonClick3);
break;
case 1:
button.Click += new EventHandler(ButtonClick4);
break;
}
this.Controls.Add(button);
}
}
void ButtonClick2(object sender, EventArgs e)
{
// Second Button Clicked
}
void ButtonClick3(object sender, EventArgs e)
{
// Third Button Clicked
}
void ButtonClick4(object sender, EventArgs e)
{
// Fourth Button Clicked
}