Wenn Sie diesen Code in Ihre FormClosing
Ereignisbehandler:
if (WindowState == FormWindowState.Maximized)
{
Properties.Settings.Default.Location = RestoreBounds.Location;
Properties.Settings.Default.Size = RestoreBounds.Size;
Properties.Settings.Default.Maximised = true;
Properties.Settings.Default.Minimised = false;
}
else if (WindowState == FormWindowState.Normal)
{
Properties.Settings.Default.Location = Location;
Properties.Settings.Default.Size = Size;
Properties.Settings.Default.Maximised = false;
Properties.Settings.Default.Minimised = false;
}
else
{
Properties.Settings.Default.Location = RestoreBounds.Location;
Properties.Settings.Default.Size = RestoreBounds.Size;
Properties.Settings.Default.Maximised = false;
Properties.Settings.Default.Minimised = true;
}
Properties.Settings.Default.Save();
Es wird der aktuelle Zustand gespeichert.
Fügen Sie dann den folgenden Code in Ihr Formular ein OnLoad
Handler:
if (Properties.Settings.Default.Maximised)
{
Location = Properties.Settings.Default.Location;
WindowState = FormWindowState.Maximized;
Size = Properties.Settings.Default.Size;
}
else if (Properties.Settings.Default.Minimised)
{
Location = Properties.Settings.Default.Location;
WindowState = FormWindowState.Minimized;
Size = Properties.Settings.Default.Size;
}
else
{
Location = Properties.Settings.Default.Location;
Size = Properties.Settings.Default.Size;
}
Es wird der letzte Zustand wiederhergestellt.
Es merkt sich sogar, auf welchem Monitor in einer Mehrmonitor-Konfiguration die Anwendung maximiert wurde.
2 Stimmen
Diese Frage wurde schon einmal gestellt und hier beantwortet: (Es ist eine gute Antwort. Stellen Sie sicher, dass Sie @Joe ein Upvote geben, wenn Sie sie verwenden.) Es ist keine exakte Kopie - diese Person hat nicht nach der Fenstergröße gefragt, aber Sie sollten in der Lage sein, von dort zu extrapolieren. stackoverflow.com/questions/105932/
0 Stimmen
Habe meinen Kommentar zusammen mit Ihrem Beitrag gelöscht... doh. Ich bin anderer Meinung, da die Lösung einen UserPreferencesManager verwendet, der, soweit ich weiß, eine benutzerdefinierte Klasse ist. Ich glaube, die Frage ist, wie Sie eine solche UserPreferencesManager-Klasse implementieren würden.
1 Stimmen
Bitte beachten Sie, dass, wenn der Benutzer eine variable Bildschirmgröße hat (z.B. wenn er manchmal einen Monitor an die nb anschließt oder eine Remote-Verbindung mit unterschiedlicher Bildschirmgröße herstellt), dieser Versuch zu einem frustrierenden Zustand führen kann, wenn Ihre Anwendung außerhalb des Bildschirmrahmens erscheint. Prüfen Sie stackoverflow.com/questions/105932/ für komplexere Lösungen.