Um eine Form mehrmals zu öffnen ist es wichtig die zu öffnende Form im z.b Click event des Buttons zu instanziieren. Dieses Beispiel wäre dann falsch:
Form1 FormHaupt = new Form1();
private void Button1_Click(object sender, EventArgs e)
{
FormHaupt.Show();
}
Dies würde dann beim zweiten mal in etwa den Folgenden Fehler auspucken.
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Form1'.
at System.Windows.Forms.Control.CreateHandle()
at System.Windows.Forms.Form.CreateHandle()
at System.Windows.Forms.Control.get_Handle()
at System.Windows.Forms.Control.SetVisibleCore(Boolean value)
at System.Windows.Forms.Form.SetVisibleCore(Boolean value)
at System.Windows.Forms.Control.Show()
at Spielsücht.Auswahl.Button1_Click(Object sender, EventArgs e) in C:\Users\student\Downloads\Test\Test\Test\Test.cs:line 57
//ein korrektes Beispiel
private void Button1_Click(object sender, EventArgs e)
{
Form1 FormHaupt = new Form1();
FormHaupt.Show();
}
Kommentare zum Snippet