Laden...

Form durch eine switch case Anweisung öffnen

Erstellt von macke_a vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.222 Views
M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 15 Jahren
Form durch eine switch case Anweisung öffnen

Hallo !
Wie kann ich bei einer switch case Abfrage eine Form öffnen lassen?
Ich nutze Form1 aus als mein Hauptfenster und will jetzt eine neue Form öffnen!

private Form3 ShowTextWindow = new Form3();  // soll geöffnet werden...

switch(x)
{
  case 1: { this.TopMost = false; // Form1 in den Hintergrund
                ShowTextWindow.ShowDialog(); break; }
  case 2: { break; }
 default:  { break; }
}

Warum funktioniert das so nicht ?? Jemand ne schnelle Idee ?

Gruss macke_a

Gelöschter Account
vor 15 Jahren
  1. bitte nutze die entsprechenden tags beim posten von code
  2. übergebe den owner bei showdialog
  3. vermutlich erscheint dein dialog hinter deiner form
  4. punkt 2 stellt sicher, das punkt 3 nicht auftritt
M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 15 Jahren

Hallo !
Punkt 1 - kommt nie wieder vor !!
Wie meinst Du das mit dem owner?
Was muss ich zum Quelltext dazu schreiben?

B
196 Beiträge seit 2007
vor 15 Jahren

Wenn du den code wirklich genau so hast wie er da oben steht dann mach einfach mal das private vor der Form3-Variablen weg.
Der rest müsste funktionieren.

your fragile folded wings
are just tired from the pure blue sky
you dont have to force your smiles for anyone
its okay to smile...for yourself

Gelöschter Account
vor 15 Jahren

beim showdialog ein this aols owner mitgeben. ab mesten du schaust mal kurz in die doku, was showdialog macht und was für überladungen es gibt.

M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 15 Jahren

Hallo !
So, das Fenster öffnet sich ! Alles soweit in Ordnung.
Ich habe einen Dialog "OK-Button" auf meiner Form, der sich irgendwann nach dem der Nutzer diesen gedrückt hat, das schließen des Fenster erledigen soll. Anschließend muss natürlich die alte Form wieder vorhanden sein!

Was muss ich machen bzw. es gibt ja eine Abfrage die den Dialog überprüft, ob das Fenster geschlossen werden soll.

if (ShowTextWindow.DialogResult == DialogResult.OK) 
{ this.TopMost = true; }  

Muss ich dafür jetzt einen Eventhandler schreiben? Wie soll ich dafür die Programmierung händeln?

Ich muss einen Bezug zur Form1 haben, oder ?

B
196 Beiträge seit 2007
vor 15 Jahren

Setz doch eifnach im OK-Button die Dialogresult-Eigenschaft auf DialogResult.OK

oder setz beim Form den OK-Button als AcceptButton

den Rest machst du dann mit deinem

if (ShowTextWindow.DialogResult == DialogResult.OK)

Edit: Ich empfehle dir ein OpenBook oder ähnliches zu lesen, denn Die Arbeit mit Dialogen gehört zu den Grundlagen.

your fragile folded wings
are just tired from the pure blue sky
you dont have to force your smiles for anyone
its okay to smile...for yourself

M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 15 Jahren

Hallo !
In der Form3 steht beim OK, unter Eigenschaft Aktion->Click-> Dialog_OK_Click..

Normal müsste das reichen, aber ich komme nicht mehr zur Form1 zurück!!!

Ne Idee?

B
196 Beiträge seit 2007
vor 15 Jahren

Setzt du in "Dialog_OK_Click.." den DialogResult vom Form auf DialogResult.OK ?

wie gesagt les dir ein openBook durch z.B.
http://www.galileocomputing.de/openbook/visual_csharp/visual_csharp_15_008.htm
da stehen solche grundlagen drinn

your fragile folded wings
are just tired from the pure blue sky
you dont have to force your smiles for anyone
its okay to smile...for yourself

M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 15 Jahren

Noch mal eine andere Sache in diesem Zusammenhang.
Warum blockiert mein restliches Programm, in der Zeit wo die Form3 aufgerufen habe?

Form3 ShowTextWindow = new Form3();
ShowTextWindow.ShowDialog(); // Form3 blockiert restliches Programm bis geschlossen

Was ist denn dazu zu sagen, das ist ja tödlich bzw. nicht zu gebrauchen für meine Anwendung!

B
196 Beiträge seit 2007
vor 15 Jahren

Das ist nunmal bei einem Dialog so.
Solange ein Dialog offen ist, ist sein Owner blockiert.

Wenn du nicht willst das es blockiert benutzte .Show() anstelle von .ShowDialog()

Den Unterschied zwischen Show und ShowDialog solltest du kennen.
Ich verweise erneut daraus das du dir dringend die Grundlagen aneignen solltest.

your fragile folded wings
are just tired from the pure blue sky
you dont have to force your smiles for anyone
its okay to smile...for yourself