Rubrik: Oberfläche · Fenster | VB-Versionen: VB.NET | 13.04.07 |
Größe und Position eines Formulars speichern (VB 2005) Für eine Windowsanwendung ist es üblich, Formulare in der zuletzt angezeigten Position und Größe zu öffnen. Dies lässt sich sehr leicht realisieren. | ||
Autor: Daniel Bühling | Bewertung: | Views: 22.642 |
www.mysldworks.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Für eine benutzerfreundliche Windowsanwendung ist es üblich, Formulare in der zuletzt angezeigten Position und Größe zu öffnen. Verändert ein User die Größe oder Position eines Formulars wird dieses Formular bei einem späteren Anwendungsstart in genau dieser Position und Größe geöffnet (z.B. bei MS Office).
Diese Eigenschaft lässt sich mit Visual Studio 2005 sehr leicht realisieren.
Starten Sie Visual Studio und öffnen Sie ein neues "Windows-Anwendung" Projekt.
In diesem Projekt sollte bereits ein Formular (Form1) vorhanden sein.
Öffnen Sie die Projekteinstellungen durch den Menüeintrag Projekt > %Projektname% - Einstellungen… oder durch den My Project Eintrag im Projektmappen – Explorer.
Im Register "Einstellung" fügen Sie zwei Einstellungen hinzu:
Name | Typ | Bereich |
Form1Size | System.Drawing.Size | Benutzer |
Form1Position | System.Drawing.Point | Benutzer |
Diese Einstellungen werden durch VB.NET automatisch im Benutzerprofil des Users hinterlegt. Im Programmcode kann man die erzeugten Einstellungen durch den Namespace My.Settings wie normale Variablen verwenden. Gespeichert werden die Einstellungen (Settings) durch die Methode My.Settings.Save oder optional durch eine Projekteinstellung beim Beenden der Anwendung.
Im Ereignis FormClosing des Formulars Form1 werden die Größe und Position beim Schließen des Formular gespeichert.
Private Sub Form1_FormClosing(ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try ' Position und Größe speichern My.Settings.Form1Size = Me.Size My.Settings.Form1Position = Me.Location My.Settings.Save() Catch ex As Exception Debug.Assert(False) Trace.WriteLine("Fehler: Wo: " & ex.StackTrace & " Was: " & ex.Message) End Try End Sub
Im Ereignis Load des Formulars Form1 wird der Inhalt der Einstellungen abgefragt. Sind Werte in den Einstellungen gespeichert, werden diese der Size und Location Eigenschaft übergeben.
Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Try ' Sind Werte hinterlegt? If My.Settings.Form1Position.IsEmpty Then ' Standardgröße Me.Size = New System.Drawing.Size(200, 200) Else ' Gespeicherte Werte verwenden Me.Size = My.Settings.Form1Size Me.Location = My.Settings.Form1Position End If Catch ex As Exception Debug.Assert(False) Trace.WriteLine("Fehler: Wo: " & ex.StackTrace & " Was: " & ex.Message) End Try End Sub
Starten Sie das Projekt und ändern Sie die Position und Größe des Formulars. Schließen Sie darauf das Formular.
Das Formular wird bei einem erneutem Projektstart auf der letzten Position und in der letzten Größe geöffnet.