Enregistrer la taille du formulaire Windows
-
03-07-2019 - |
Question
Je développe une pièce dans VB.NET. Dans mon formulaire principal, je crée un nouveau formulaire à utiliser comme dialogue. Je me demandais s’il existait un moyen de sauvegarder, à la fermeture de la nouvelle boîte de dialogue, ses paramètres de taille pour chaque utilisateur (probablement dans un fichier sur leur machine, via XML ou quelque chose de ce genre?)
La solution
vous pouvez l'enregistrer dans le fichier de paramètres et le mettre à jour lors de l'événement 'onclosing'.
pour effectuer un réglage, allez à Propriétés du projet - > paramètres - > puis effectuez un réglage tel que 'dialogsize' de type system.drawing.size.
puis faites ceci dans votre formulaire 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
faites 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()
Autres conseils
Bien que ceci soit en C # , cela aidera aussi avec VB.Net.
Vous pouvez également ajouter un nouveau paramètre à votre application (taille) et le définir sur system.drawing.size
Ensuite, assurez-vous d'enregistrer la taille actuelle dans les paramètres de 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 en charge, vous appliquez la taille que vous avez enregistrée 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
Vous pouvez également le faire en utilisant l'interface utilisateur fournie par l'EDI VB.NET lui-même. Dans le volet des propriétés d'un formulaire, recherchez l'élément intitulé "(Paramètres de l'application)". puis sous "Propriété Binding". Vous pouvez lier à peu près toutes les propriétés du formulaire (y compris la taille et l'emplacement) à une valeur de paramètre pour cette application.
En fin de compte, j’ai trouvé un moyen de le faire en utilisant System.IO.IsolatedStorage