Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen C# Show() und ShowDialog()

Der Unterschied zwischen C# Show() und ShowDialog()

黄舟
黄舟Original
2017-02-25 10:53:102649Durchsuche

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.

Das heißt, wenn das nichtmodale Fenster geschlossen wird, wird die Close-Methode aufgerufen und dann wird die Dispose-Methode aufgerufen, um die Fensterressourcen zu recyceln Das Fenster ist geschlossen, die Fensterinformationen können nicht abgerufen werden. Wenn das modale Fenster geschlossen wird, wird weder die Close-Methode noch die Dispose-Methode aufgerufen. Das Fenster ist weiterhin vorhanden und belegt Ressourcen, sodass Sie weiterhin fensterbezogene Informationen abrufen können. Wenn das Fenster nicht mehr verwendet wird, müssen Sie es manuell freigeben it

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.

3. Wenn das anzuzeigende Formular den Singleton-Modus verwendet, erscheint nach Abschluss jeder Show nach dem Schließen() des Formulars die zweite Show: Zugriff auf ein freigegebenes Objekt nicht möglich . Objektname: „XXXX“. Zu diesem Zeitpunkt sollte close() geändert werden, um das Formular auszublenden.

Das Obige ist der Unterschied zwischen C# Show() und ShowDialog(). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn