Laden...
5 Antworten
1,422 Aufrufe
Letzter Beitrag: vor 18 Jahren
Steuerelement löschen

Ich möchte ein Steuerelement erst zur Laufzeit und nicht schon zur Entwurfszeit einem Formular hinzufügen.
Das mache ich so zB im Form_Load:

for (int i = 1; i<12; i++)
{
TextBox mytext = new TextBox();
mytext.Top = 0+20*i;
mytext.Left=0;
mytext.BackColor = Color.Blue;
this.Controls.Add(mytext);
}

Aber wie kann ich die generierten Textfelder wieder löschen, zB bei Klick auf einen Button?

this.Controls.Remove(mytext);

Das funktioniert nicht. Es hängt damit zusammen, zu welchen Zeitpunkt "mytext" instanziiert wird.
Wäre eine forech-Schleife eventuell eine Lösung?

MfG
Buck

Hallo Buck,

Remove sollte gehen, aber du musst genau/exakt das Control angeben, dass gelöscht werden soll.

herbivore

danke für deine antwort, aber ...
ich erzeuge in diesem fall die Textbox mit
... TextBox mytext = new TextBox();
im Form_Load().

In der Click_Methode kennt er natürlich nicht "mytext". Könnte es so funktionieren?
zB TextBox [] mytext = new TextBox[12];

mfg
Buck

Hallo Buck,

sich die TextBoxen in einem Array zu merken, kann durchaus sinnvoll sein.

herbivore

Aber im Click hast Du im Sender ein object drin. Das object casten auf Control und dieses dann removen.

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...