2008-10-22 6 views
7

Je développe une pièce dans VB.NET. À l'intérieur de mon formulaire principal, je crée un nouveau formulaire à utiliser comme un dialogue. Je me demandais s'il y avait un moyen, à la fin du nouveau dialogue, enregistrer ses paramètres de taille pour chaque utilisateur (probablement dans un fichier sur leur machine, via XML ou quelque chose?)Enregistrer la taille du formulaire Windows

Répondre

7

vous pouvez l'enregistrer dans le fichier de paramètres et le mettre à jour lors de l'événement 'onclosing'.

pour faire un réglage goto Propriétés du projet -> settings -> puis faites un réglage comme 'dialogsize' de type system.drawing.size.

faites ceci dans votre forme de dialogue:

Public Sub New() 
    InitializeComponent() 
End Sub 

Public Sub New(ByVal userSize As Size) 
    InitializeComponent() 
    Me.Size = userSize 
End Sub 

Protected Overrides Sub OnClosing(ByVal e As System.ComponentModel.CancelEventArgs) 
    MyBase.OnClosing(e) 
    My.Settings.DialogSize = Me.Size 
    My.Settings.Save() 
End Sub 

faire quelque chose comme ceci pour vérifier et utiliser le paramètre:

Dim dlg As MyDialogWindow 
    If My.Settings.DialogSize.IsEmpty Then 
     dlg = New MyDialogWindow() 
    Else 
     dlg = New MyDialogWindow(My.Settings.DialogSize) 
    End If 
    dlg.ShowDialog() 
+0

Dans le concepteur pour mon WinForm, je vais sous Propriétés et je vois (PropertyBinding), mais il n'y a pas de propriété DialogSize que Je peux trouver. Est-ce quelque chose que vous avez configuré manuellement dans le code ou dans le concepteur? –

+0

DialogSize est un Var global que vous devez créer dans le fichier de paramètres. Aller à Projet -> Propriétés « vous projetez nom » -> Paramètres tab-> ajouter un paramètre appelé « DialogSize » ou ce que vous aimez de type System.Drawing.Size taille est Unfortunatly pas le bit propertybinding – Hath

+0

Ok - J'ai compris de quoi vous parliez et je l'ai configuré, mais maintenant, quand j'essaie de l'invoquer, j'obtiens une ConfigurationErrorsException, disant que le système Cofniguration n'a pas pu s'initialiser. Comment puis-je résoudre ce problème? –

0

Vous pouvez également le faire en utilisant l'interface utilisateur fournie par l'IDE VB.NET lui-même. Dans le volet Propriétés d'un formulaire, recherchez sous l'élément "Paramètres de l'application", puis sous "Liaison de propriété". Vous pouvez lier à peu près toutes les propriétés du formulaire (y compris la taille et l'emplacement) à une valeur de paramètres pour cette application.

0

Comme il se trouve, j'ai trouvé une façon de le faire en utilisant le System.IO.IsolatedStorage

+0

Intéressant - pourquoi avez-vous choisi IsolatedStorage? – Keithius

+0

Vous voulez partager votre code? –

2

Vous pouvez également ajouter un nouveau paramètre à votre application (taille) et le mettre à system.drawing.size

Ensuite, vous vous assurez que vous enregistrez la taille actuelle pour les paramètres à la fermeture.

Private Sub myForm_FormClosing(ByVal sender As System.Object, 
          ByVal e As System.Windows.Forms.FormClosingEventArgs) _ 
          Handles MyBase.FormClosing 

    My.Settings.size = Me.Size 
    My.Settings.Save() 

End Sub 

et de la charge que vous appliquez la taille que vous avez enregistré dans les paramètres

Private Sub myForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ 
    Handles MyBase.Load 
    ' if this is the first time to load the form 
    ' dont set the size (the form will load with the size in the designe) 
    If Not My.Settings.size.IsEmpty Then 
     Me.Size = My.Settings.size 
    End If 
End Sub 
Questions connexes