Warten Sie, um Informationen aus einem Popup-Formular zu erhalten

8

Bei der Initialisierung eines Formulars (des Hauptformulars) ruft es ein anderes Formular auf, um eine Reihe von Starteingaben zu erhalten, und überträgt dann viele Informationen:

%Vor%

Ich muss jedoch darauf warten, dass diese neuen Formularinformationen vollständig sind.

%Vor%

ATM, ich habe versucht, while-Anweisungen zu verwenden:

%Vor%

Aber das verursacht einen Hang ... das heißt, es läuft, dann friert es ein. Ich vermute, das liegt daran, dass die While-Schleife die gesamte Verarbeitung verschlingt. Also habe ich versucht, einen neuen Thread zu erstellen

%Vor%

Aber auch dadurch hängt es. Vielleicht aus dem gleichen Grund. Ich habe in autoresetevents geschaut.

Und ich habe es versucht:

%Vor%

Aber leider öffnet es form3, schließt es (weil der Thread fertig ist?), und bleibt dann bei invisible.WaitOne();

hängen

Kann jemand bitte erklären, wie man das macht, Lesen macht mich nur verwirrter.

    
marc_s 17.08.2012, 14:17
quelle

2 Antworten

11

Was Sie brauchen, ist ein Dialog.

%Vor%

Dies wird die Ausführung anhalten und nur fortsetzen, sobald das Formular geschlossen ist.

    
davenewza 17.08.2012, 14:20
quelle
1

Sie möchten Ereignisse verwenden:

%Vor%

Es ist wichtig, dass die aktuelle Methode sofort beendet wird, damit der UI-Thread mit seinen Schleifen weitermachen kann. Durch das Anhängen an einen Event-Handler stellen Sie sicher, dass Ihr Code ausgeführt wird, wenn er benötigt wird. Das gesamte Konzept des "Wartens auf das Schließen der Kinderform" widerspricht inhärent dem Design von Winforms.

Sie könnten das Formular auch zu einem Dialog-Popup machen.

%Vor%

Das wird gut funktionieren, kein unbeabsichtigtes Einfrieren.

    
Servy 17.08.2012 14:20
quelle

Tags und Links