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
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()
Bien que this is for C#, il aidera avec VB.Net aussi.
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.
Comme il se trouve, j'ai trouvé une façon de le faire en utilisant le System.IO.IsolatedStorage
Intéressant - pourquoi avez-vous choisi IsolatedStorage? – Keithius
Vous voulez partager votre code? –
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
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? –
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
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? –