Entwickler-Ecke

WinForms - Forms mehrmals aufrufen


grinchi - Di 13.04.10 13:18
Titel: Forms mehrmals aufrufen
Ich habe 2 Forms und wenn ich Form2 schließe so das Form1 wieder gezeigt werden soll geht das beim ersten mal gut aber beim zweiten mal nicht wirklich

meine Fehlermeldung sieht wie folgt aus:
Das Formular, das bereits modal angezeigt wird, kann nicht als modales Dialogfeld angezeigt werden. Schließen Sie das Formular, bevor Sie showDialog aufrufen.

nur kann ich ja Form1 nicht so einfach schließen

hier nochmal ein wenig Code um mein Dilemma quasi zu verdeutlichen

Form2 (wird in Form1 mit ShowDialog aufgerufen)


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
public bool abbrechen

void button1_Click(Object sender, EventArgs e)
{
  abbrechen=true;
  this.Close();
}


Form1 sieht dann so aus
....


C#-Quelltext
1:
2:
3:
4:
5:
6:
Form2.ShowDialog();
if(form2.abbrechen==true)
{
  this.Visible=false;
  this.ShowDialog();
}



danke schonmal im vorraus


ThoMa - Di 13.04.10 13:39

Hallo,

folgende Tipps:
- Guck Dir mal ModalResult an, dann brauchst Du auch kein abbrechen-Flag.
- Zugriffe von außen bitte immer über Properties kapseln.
- Lies Dir nochmal durch was eine Instanz ist und verwende using.

Also Beispielsweise so:

C#-Quelltext
1:
2:
3:
4:
5:
using (FormAuswahl instanzVariable = new FormAuswahl())
  if (instanzVariable.ShowDialog() == DialogResult.OK)
  {
    // Verarbeitung
  }


Grüße
Thorsten


grinchi - Di 13.04.10 13:41

das werde ich tun ... danke