/ / Wie schließe ich ein Formular, nachdem ich ein anderes Formular [Duplikat] - c #, Formulare geöffnet habe

Wie schließe ich ein Formular, nachdem ich ein anderes Formular [Duplikat] - c #, Formulare geöffnet habe?

Nehmen wir also an, ich habe auf eine Schaltfläche geklickt, die ein neues Formular öffnen und das aktuelle Formular schließen soll.

private void button1_Click(object sender, EventArgs e)
{
this.Close();
Form2 AFormInstance = new Form2();
AFormInstance.Show();
}

Ich habe es versucht this.Close() Aber was am Ende geschah, waren beide Formen geschlossen. Wie öffne ich mich? Form2 und schließen Form1?

Antworten:

0 für die Antwort № 1

Wenn das übergeordnete Element von Button1 Form1 ist, können Sie Folgendes verwenden:

var formToBeClosed = ((sender as Button).Parent) as Form;
formToBeClosed.Close();

-2 für die Antwort № 2

Wechseln Sie einfach ein paar Zeilen:

private void button1_Click(object sender, EventArgs e)
{
Form2 AFormInstance = new Form2();
AFormInstance.Show();
this.Close();
}

Edit: Nach weiteren Überlegungen: Schließen Sie nicht versehentlich Ihr Hauptformular?

Ändern Sie den Standardcode von program.cs in:

    static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 form1 = new Form1();
form1.Show();
Application.Run();
}

Um die Anwendung zu schließen, verwenden Sie:

Application.Exit();