Dispose

27/08/2007 - 15:04 von MarcoGomez | Report spam
Hallo,

ich habe ein Formular, in dem ein userControl instanziiert wird.

Maske maske;

buttonClick(...)
{
if (maske == null) return;

maske = new Maske();
...
maske.BringToFront();
maske.Show();
}

Wird das UserControl maske beendet, so wird Dispose() ausgeführt.
Falls der Benutzer nun wieder auf buttonClick() klickt soll das
UserControl erneut instanziiert werden. Aber nur, falls es geschlossen
ist. Dazu frage ich das Objekt auf null ab, aber irgendwie
funktioniert dies nicht. Was kann ich da machen?

LG Marco
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
27/08/2007 - 18:52 | Warnen spam
"MarcoGomez" schrieb:
ich habe ein Formular, in dem ein userControl instanziiert wird.

Maske maske;

buttonClick(...)
{
if (maske == null) return;



Sollte hier nicht '!= null' getestet werden?

maske = new Maske();
...
maske.BringToFront();
maske.Show();
}

Wird das UserControl maske beendet, so wird Dispose() ausgeführt.
Falls der Benutzer nun wieder auf buttonClick() klickt soll das
UserControl erneut instanziiert werden. Aber nur, falls es geschlossen
ist. Dazu frage ich das Objekt auf null ab, aber irgendwie
funktioniert dies nicht. Was kann ich da machen?



'Dispose' setzt die Variable nicht auf 'null'. Das musst du explizit machen.
Alternativ kannst du die Eigenschaft 'IsDisposed' des Steuerelements
abfragen.

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen