Heim > Artikel > Backend-Entwicklung > Der Unterschied zwischen C# Show() und ShowDialog()
A.Formularanzeige in WinForm
Es gibt zwei Methoden zum Anzeigen eines Formulars:
Form.ShowDialog-Methode (das Formular wird als modales Formular angezeigt)
Form.Show-Methode (das Formular wird angezeigt ist ein modales Formular)
Die spezifischen Unterschiede zwischen den beiden sind wie folgt:
1. Nach dem Aufruf der Form.Show-Methode wird der Code, der der Show-Methode folgt, sofort ausgeführt
2 Aufruf der Form.ShowDialog-Methode. Schließlich wird der Code hinter dieser Methode erst ausgeführt, wenn das Dialogfeld geschlossen wird.
Kleiner Hinweis:
1 -up window blockiert alle Nachrichtenantworten des aufrufenden Fensters.
Das aufrufende Fenster kann erst fortgesetzt werden, nachdem das Popup-Fenster beendet ist.
Nachdem das modale Fenster „geschlossen“ wurde, können Sie die Informationen im modalen Fenster lesen, einschließlich des Rückgabestatus des Fensters und der Werte der Untersteuerelemente des Fensters.
Erklärung von showdialog auf MSDN:
Wenn das Formular als modales Dialogfeld angezeigt wird, klicken Sie auf die Schaltfläche „Schließen“ (die Schaltfläche mit einem X in der oberen rechten Ecke von Das Formular wird ausgeblendet und die DialogResult-Eigenschaft auf DialogResult.Cancel gesetzt. Im Gegensatz zu modalen Formularen ruft das .NET Framework die Close-Methode nicht auf, wenn der Benutzer auf die Schaltfläche „Formular schließen“ des Dialogfelds klickt oder den Wert der DialogResult-Eigenschaft festlegt. Das Formular kann dann ausgeblendet und erneut angezeigt werden, ohne dass eine neue Instanz des Dialogfelds erstellt werden muss. Da ein Formular, das als Dialogfeld angezeigt wird, nicht geschlossen wird, müssen Sie die Dispose-Methode des Formulars aufrufen, wenn Ihre Anwendung das Formular nicht mehr benötigt.
2. Nach der nichtmodalen Anzeige kann
nach Belieben zwischen dem Popup-Fenster und dem Aufruffenster wechseln.
Nach dem Aufruf der Show-Methode im aufrufenden Fenster kann der folgende Code sofort ausgeführt werden.
Nachdem das nichtmodale Fenster geschlossen wurde, werden alle Ressourcen des Fensters freigegeben, das Fenster existiert nicht und es können keine Informationen über das Fenster abgerufen werden.