Ich habe Form1 und Form2 in meinem Projekt. Form2 ist nur ein Formular mit Einstellungen für Form1. Wie lautet der Befehl zum Öffnen von Form2 aus Form1 und wie lautet der Befehl zum Schließen des Formulars?
Antworten
Zu viele Anzeigen?Sie müssen mit einem Veranstaltung auf Formular1, die als Ergebnis der Benutzerinteraktion ausgelöst wird. Wenn Sie zum Beispiel eine Schaltfläche "Einstellungen" haben, auf die der Benutzer klickt, um das Einstellungsformular (Formular2) anzuzeigen, sollten Sie die Click
Ereignis für diese Schaltfläche:
private void settingsButton_Click(Object sender, EventArgs e)
{
// Create a new instance of the Form2 class
Form2 settingsForm = new Form2();
// Show the settings form
settingsForm.Show();
}
Zusätzlich zu den Show
Methode können Sie sich auch für die Verwendung der ShowDialog
Methode . Der Unterschied besteht darin, dass letztere das Formular als eine modaler Dialog Das bedeutet, dass der Benutzer nicht mit den anderen Formularen in Ihrer Anwendung interagieren kann, bis er das modale Formular schließt. Dies ist die gleiche Art und Weise, wie ein Nachrichtenfeld funktioniert. Das ShowDialog
Methode gibt auch einen Wert zurück, der angibt, wie das Formular geschlossen wurde.
Wenn der Benutzer das Einstellungsformular schließt (z. B. durch Klicken auf das "X" in der Titelleiste), kümmert sich Windows automatisch um das Schließen des Formulars.
Wenn Sie das Formular selbst schließen möchten, bevor der Benutzer darum bittet, können Sie die Formularfunktion Close
Methode :
this.Close();
Wenn Sie Folgendes öffnen möchten Form2
modal (d. h. Sie können nicht auf Formular1 klicken, während Formular2 geöffnet ist), können Sie dies tun:
using (Form2 f2 = new Form2())
{
f2.ShowDialog(this);
}
Wenn Sie Formular2 nicht-modal öffnen möchten (d. h. Sie können weiterhin auf Formular1 klicken, während Formular2 geöffnet ist), können Sie einen Verweis auf Formularebene zu Formular2 wie folgt erstellen:
private Form2 _f2;
public void openForm2()
{
_f2 = new Form2();
_f2.Show(this); // the "this" is important, as this will keep Form2 open above
// Form1.
}
public void closeForm2()
{
_f2.Close();
_f2.Dispose();
}
- See previous answers
- Weitere Antworten anzeigen