Wie enge form in C#
Ok, also eine Windows Forms-Klasse, WindowSettings, und die form hat einen "Abbrechen"-button. Wenn der Benutzer auf die Schaltfläche klickt, wird der dialog DialogSettingsCancel pop-up und fragt den Benutzer, ob er sicher ist, will er die Aktion durchführen. Der dialog hat 2 Tasten, eine "ja"-button-und einen "Nein"-button. Wenn der Benutzer klickt auf den "ja"-button, ich will beide DialogSettingsCancel und WindowSettings geschlossen werden.
Meine button_Click-Ereignishandler in DialogSettingsCancel:
private void button1_Click(object sender, EventArgs e)
{
//Code to trigger when the "Yes"-button is pressed.
WindowSettings settings = new WindowSettings();
this.Close();
settings.Close();
}
Wenn ich meine Anwendung, und gehen Sie zu den Einstellungen-Formular, und klicken Sie auf den "Abbrechen"-Schaltfläche, und klicken Sie dann auf den "ja"-button, nur DialogSettingsCancel schließt, ohne schließen WindowSettings.
Nicht warum es funktioniert?
Ich habe auch versucht, die änderung
this.Close();
settings.Close();
zu
settings.Close();
this.Close();
Aber immer noch das gleiche Ergebnis.
- Ihre "Einstellungen" werden nie gezeigt, um geschlossen in den ersten Platz, Sie sind wahrscheinlich auf der Suche für einige andere Instanz
- Dies geschieht, weil Sie die Schließung der
Window
dass ist der Umgang mit dem click-Ereignis vor dem schließen des anderenWindow
. Dies ist nicht eine Form-Klasse dies ist eineWindow
Klasse riesigen Unterschied. Außerdem werden die Einstellungen nicht gleich auf die Instanz von WindowSettings Ihr gleich eine ganz andere Instanz. Verwenden Sie den VS-debugger.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die aktuelle Instanz des
WindowSettings
offene, nicht neu.Derzeit, erstellen Sie eine neue Instanz von
WindowSettings
und ruftClose
auf, dass. Macht das nichts, weil die neue Instanz nie gezeigt worden.Statt, bei der Anzeige
DialogSettingsCancel
einstellen der aktuellen Instanz vonWindowSettings
als die Eltern.Etwas wie dieses:
In
WindowSettings
:In
DialogSettingsCancel
:Dieser Ansatz berücksichtigt, dass eine
DialogSettingsCancel
könnte möglicherweise geöffnet werden, ohneWindowsSettings
als Elternteil.Wenn die beiden immer verbunden, sollten Sie stattdessen einen Konstruktor-parameter:
In
WindowSettings
:In
DialogSettingsCancel
:Den Sie gerade geschlossen, die Marke neue Instanz des Formulars, das war nicht sichtbar in den ersten Platz.
Müssen Sie schließen Sie die original Instanz des Formulars akzeptieren Sie als Konstruktor-parameter und speichert diese in einem Feld.
Warum nicht verwenden Sie die DialogResult-Methode das Formular zu schließen?
Damit dies funktioniert, jedoch Sie tun müssen, wird es in Ihrem "WindowSettings" form, während Sie rufen Sie die DialogSettingsCancel form. Viel die gleiche Weise würden Sie das nennen die OpenFileDialog oder andere Dialog-Formular.
Ihre Schließung Ihrer Instanz der settings-Fenster rechts, nachdem Sie es schaffen. Sie benötigen zum anzeigen der Einstellungen-Fenster zuerst, dann warten Sie einen dialog führen. Wenn es zurück kommt, wie abgebrochen, dann schließen Sie das Fenster. Zum Beispiel:
Können Sie auch die Anwendung schließen:
Es wird am Ende des Prozesse.
senden Sie die WindowSettings als parameter des Konstruktors der DialogSettingsCancel und dann auf die button1_Click, wenn ja gedrückt wird, rufen Sie die close-Methode der beiden.
zum Beispiel, wenn Sie möchten, schließen Sie ein windows-Formular, wenn eine Aktion durchgeführt wird, gibt es zwei Methoden, um es zu tun
1.Schließen Sie es direkt
2.Wir können auch das Formular ausblenden, ohne es zu schließen
Es gibt verschiedene Methoden zum öffnen oder schließen winform.
Form.Close() ist eine Methode, die in der Schließung eines winform.
Wenn " Form.Close () " ausführen , werden alle Ressourcen angelegt, die form zerstört werden.
Mittel-Steuerelement und alle untergeordneten Steuerelemente (labels , buttons) , Formen etc.
Einige andere Methoden, um in der Nähe winform
Einige Methoden zu Öffnen/Starten Sie eine form
Alle handeln anders , Sie Erkunden !