Entwickler-Ecke
WinForms - Objecte Löschen
bd.cole - Mi 22.08.07 10:10
Titel: Objecte Löschen
Hallo Man kann ja Objecte wie z.b. Picturebox zur Laufzeit ganz eifnach erstellen. Kann man die auch zur Laufzeit wieder löschen. Mit der Entf Taste? Find da nirgends was
Kha - Mi 22.08.07 11:51
Du entfernst den sender-Parameter des Eventhandlers aus der Controls-Collection des Parents, fertig. Dispose kannst du auch noch gleich aufrufen.
JüTho - Mi 22.08.07 12:56
Hallo,
ich wollte meine Antwort schon länger abschicken, hatte aber Probleme mit der Forums-Datenbank. Da ich sie ausführlicher geschrieben hatte als Khabarakh, schicke ich sie, obwohl sie im Ergebnis nicht mehr vorschlägt als er.
Zur Laufzeit "ganz einfach" erstellen? Nun ja, mit soviel Code wie erforderlich...
Zur Laufzeit löschen "mit der Entf-Taste"? So einfach natürlich nicht; dafür ist (wie beim Erstellen) entsprechend viel Code erforderlich. Insbesondere musst Du feststellen,
welches Control gelöscht werden soll.
Arbeitsanleitung zum Beispiel so:
- Im Formular muss KeyPreview = true gesetzt werden.
- Du musst das Ereignis KeyDown oder KeyUp nutzen, um das Drücken der Entf-Taste zu erhalten.
- In diesem Ereignis dürfte der Sender das aktuelle Control angeben; es könnte aber auch sein, dass Du mit ActiveControl arbeiten willst oder die aktuelle Maus-Position umrechnen musst. Auf jeden Fall musst Du auf diese Weise herausfinden, welches Control zu löschen ist.
- Dann musst Du den Parent des Controls bestimmen und es aus dessen Auflistung löschen:
C#-Quelltext
1: 2: 3: 4: 5:
| Control required = ... if (required.Parent != null) { required.Parent.Controls.Remove(required); required.Dispose(); } |
Anstelle des Parent kann auch mit dem Formular gearbeitet werden - je nach Situation.
Viel Erfolg! Jürgen
PS. Ohne Gewähr - ich hatte es nur so hingeschrieben.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!