Anbei mal eine Kleine Anleitung + Snippet um Fenstergröße und Fensterposition zu speichern.

Das ganze funktioniert nur bei Anwendungen.

Zuerst öffnen wir die Settings-Datei. Hier kann man Einstellungen speichern (egal welcher Datentyp):

Nun tragen wir unsere 2 Einstellungen ein (Wert = Grundwert = Beim ersten Öffnen der Anwendung).

Nun zum Code:

Als erstes definieren wir das speichern der Einstellungen beim Beenden des Formulars:

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {

            Properties.Settings.Default.frmState = this.WindowState;
            if (this.WindowState == FormWindowState.Normal)
            {
                Properties.Settings.Default.frmSize = this.Size;
                Properties.Settings.Default.frmLoc = this.Location;
            }

            else
            {
                Properties.Settings.Default.frmSize = this.RestoreBounds.Size;
                Properties.Settings.Default.frmLoc = this.RestoreBounds.Location;
            }
            Properties.Settings.Default.Save();
        }

Hier wird noch unterschieden wie die Fensterposition ist.

Nun kommen wir zum Laden der Einstellungen bei Starten der Anwendung:

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Size = Properties.Settings.Default.frmSize;
            this.Location = Properties.Settings.Default.frmLoc;
            this.WindowState = Properties.Settings.Default.frmState;
        }

Nun kann man das Programm testen, doch es wird auffallen, dass beim 1. Start das Fenster ganz klein ist. Hier wird versucht die „alte“ Fenstergröße zu Laden, der Wert ist nicht vorhanden somit wird der MinimumSize Wert verwendet. Hier sollte man als Fallback einen größeren Wert als 0;0 eintragen:

Anbei noch ein Beispielprojekt:

SaveFormSizeAndPosition (1108 Downloads)