Récupérer les préférences utilisateur sur une fenêtre MAIN en VB 2010 ???
Jokyone
Messages postés6Date d'inscriptionmercredi 19 juillet 2006StatutMembreDernière intervention10 décembre 2011
-
29 nov. 2011 à 22:53
NHenry
Messages postés15083Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention19 septembre 2023
-
29 nov. 2011 à 23:36
Récupérer les préférences utilisateur sur une fenêtre MAIN en VB 2010 ???
Private Sub Frm_MAIN_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
' Ces 2 variables Public enregistrent en permanence les dimensions de la fenêtre MAIN
MyW = Me.Width
MyH = Me.Height
End Sub
Private Sub Frm_MAIN_Move(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Move
' Ces 2 variables Public enregistrent en permanence les coordonnées (X/Y) de la fenêtre MAIN
MyLeft = Me.Location.X
MyTop = Me.Location.Y
End Sub
' (On peut remplacer la méthode Move par LocationChanged, çà revient au même)
A la fermeture de la Fenêtre, j’enregistre ses paramètres comme ceci :
Private Sub Frm_MAIN_FormClosed(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.FormClosed
'
' ************ Enregistrer les paramètres de la fenêtre MDI à la fermeture ************
'Dimensions de la fenêtre MAIN
If Me.Width > 799 Then
SaveSetting("Ressources", "Configuration", "LargeurW", MyW)
End If
'
If Me.Height > 599 Then
SaveSetting("Ressources", "Configuration", "HauteurW", MyH)
End If
' Positions de la fenêtre MAIN
SaveSetting("Ressources", "Configuration", "PosX", MyLeft)
SaveSetting("Ressources", "Configuration", "PosY", MyTop)
'
'
End Sub
' En fin de Load de la fenêtre, j initialise un Timer à True pour redimensionner avec les valeurs de la Base de registre :
' (STARTAPP est une variable Public initialisée à True en Procédure FormLoad)
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
' La Frm_MAIN au se charge avec les valeurs (640 x 480)
' En fin de "Load" on redimensionne avec les dernières valeurs enregistrées dans la Base de Registre !
If STARTAPP = True Then
'
Dim RegW As String = ""
Dim RegH As String = ""
Dim RegL As String = ""
Dim RegT As String = ""
'
' Position de la fenêtre MAIN
RegL = GetSetting("Ressources", "Configuration", "PosX")
If RegL <> "" Then
MyLeft = Val(RegL)
End If
'
RegT = GetSetting("Ressources", "Configuration", "PosY")
If RegT <> "" Then
MyTop = Val(RegT)
End If
'
Me.Location = New System.Drawing.Point(MyLeft, MyTop)
' Taille de le fenêtre MAIN
RegW = GetSetting("Ressources", "Configuration", "LargeurW")
If RegW <> "" Then
MyW = Val(RegW)
Me.Width = MyW
Else
Me.Width = 800
End If
'
RegH = GetSetting("Ressources", "Configuration", "HauteurW")
If RegH <> "" Then
MyH = Val(RegH)
Me.Height = MyH
Else
Me.Height = 600
End If
'
STARTAPP = False
End If
End Sub
Tout ceci fonctionne très bien !
Mais j ai un BIG Problème en VB 2010 (Que n’avais pas en VB6)
Je n arrive pas dans le code à définir la Propriété de la fenêtre WindowSate = Maximized
Ni à savoir la valeur de la propriété de ce statu (Normal / Maximized / Minimized) qui devrait me renvoyer une valeur numérique du statu, genre 0,1 et 2 Comme dans VB6…
A savoir qu il n’est pas bon de mémoriser la taille de la fenêtre, si l’utilisateur à cliquer sur le second bouton en haut à droite, derrière la croix rouge…
Sinon, lorsqu il cliquera sur ce même bouton pour réduire la fenêtre, il l aura dans le baba, puisque la taille mini de la fenêtre sera au MAX écran…
Le pire, c est qu avec Seven on peut passer en Maximized juste en déplaçant la fenêtre juste avec la souris…
Quelqu’un a une réponse ???
Merci d’avance.
Joky
A voir également:
Récupérer les préférences utilisateur sur une fenêtre MAIN en VB 2010 ???
NHenry
Messages postés15083Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention19 septembre 2023159 29 nov. 2011 à 23:36
Bonjour,
En .NET, préfères utiliser My.Settings plutôt, ce sera plus facile à manipuler.
Penses aussi à tretirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet "Références" des propriétés du projet.
Ensuite, utilises des méthode s.NET pour convertir les valeur si besoin :
Val se remplace par Integer.Parse ou Double.Parse, ...
Il y a aussi TryParse.
Si ce n'est pas fait, actives Option Strict.
Une fois cela fait, reviens avec les erreurs que tu n'arrives pas à corriger.
Il est d'usage d'éviter d'utiliser ces méthodes compatibles VB6, car elle ne sont que le miroir d'autres qui sont plus conforme .NET, plus facile à comprendre et surtout, plus facilement gérables (format numérique incorrecte par exemple ...).
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site