Verwendung von C# und WinForms, habe ich ein Grundmenü, das eine Vielzahl von Formen auf Tastenklicks ruft:Muss ich Form.Close() aufrufen, oder wird es für mich behandelt?
private void Some_Button_Click(object sender, EventArgs e)
{
var someForm = new SomeForm();
someForm.MdiParent = MenuForm;
someForm.Show();
someForm.BringToFront();
}
Meine Sorge ist, Speicher useage. Wenn ein Benutzer auf "x" klickt, um das Formular zu schließen, wird Form.Close()
bereits beim Schließen des Fensters aufgerufen? Oder muss ich ein Ereignis erstellen, um explizit Form.Close()
aufzurufen?
Nein, tun Sie nicht. Wenn Sie die 'Form' nicht manuell über Ihren Code schließen, müssen Sie' Form.Close() 'nicht aufrufen. – EvilTak
In der herkömmlichen .NET-Methode ruft die Close() - Methode einer Klasse Dispose() auf. Das gilt auch für die Form-Klasse. In manchen Fällen müssen Sie Dispose() aufrufen, wenn Sie ShowDialog() anstelle von Show() verwenden. Dies kann nicht automatisch erfolgen, da Sie die Dialogergebnisse normalerweise nach dem Aufruf von ShowDialog() erhalten würden. Und richtig gemacht mit der Anweisung * using *. Nicht der Fall hier. –