Entwickler-Ecke

WinForms - Selbst erstellten Button entfernen


vreden123 - Mi 25.05.11 23:49
Titel: Selbst erstellten Button entfernen
Hallo,

mit folgendem Code erstelle ich mehrere Buttons:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Button seitehinzufügen_cmd_seite = new Button();
seitehinzufügen_cmd_seite.Text = e.s_seitenname;
seitehinzufügen_cmd_seite.Location = new Point(0, i_seite_bearbeiten_buttons_location);
seitehinzufügen_cmd_seite.Size = new Size(11023);
seitehinzufügen_cmd_seite.Name = "seitehinzufügen_cmd_seite";
seitehinzufügen_cmd_seite.Visible = true;
seitehinzufügen_cmd_seite.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
seitehinzufügen_cmd_seite.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.panel_seite_bearbeiten_buttons.Controls.Add(seitehinzufügen_cmd_seite);
i_seite_bearbeiten_buttons_location = i_seite_bearbeiten_buttons_location + 35;


Mit dieser Methode werden mehrere Buttons erstellt.

Jetzt möchte ich auch eine Methode haben die alle Buttons wieder entfernt.

Mit:

C#-Quelltext
1:
seitehinzufügen_cmd_seite.Visible = false;                    


Geht es nicht, weil die Buttons nicht im Kontext enthalten sind.
Wie kann ich dieses Problem am besten lösen?


Dr. Hallo - Do 26.05.11 00:25

so ähnlich müsste es gehen, ich glaube Controls hattne Clear()-Methode intus...


C#-Quelltext
1:
this.panel_seite_bearbeiten_buttons.Controls.Clear();                    


das setzt aber voraus, dass dein Panel nicht noch andere Controls enthält, die nicht gelöscht werden dürfen...


Dr. Hallo - Do 26.05.11 00:30

huch ich sehe grad , Du willst die nur unsichtbar machen, na dann...

C#-Quelltext
1:
2:
3:
4:
5:
foreach(Control c in Panel.Controls)
{
   if(c is Button)
      c.Visible = false;
}