Connaitre la position d'une form

Tweet75 Messages postés 87 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 janvier 2012 - 25 déc. 2009 à 23:44
Tweet75 Messages postés 87 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 janvier 2012 - 27 déc. 2009 à 20:20
Bonsoir a tous,

Avant tout je vous souhaite de joyeuses fêtes en espérant que le sapin a été chargé de cadeaux .

Bon, j'ai une question sans réponse malgré mes recherches sur le net.

Je voudrais connaitre la position de ma form (location) pour pouvoir l'enregistrer dans un fichier texte pour que lorsque l'utilisateur ferme et réouvre le programme, celui-ci se mette à la même position. De même, comment peut on savoir que la form a été déplacé (déclenchement d'un événement lors du déplacement ?)


Merci beaucoup

7 réponses

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
26 déc. 2009 à 00:14
La propriété contenant la position du formulaire : Location
L'évènement déclenché lors de son déplacement : Move
---
VB.NET is good ... VB6 is better
0
Tweet75 Messages postés 87 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 janvier 2012
26 déc. 2009 à 13:03
Bonjour,

Merci pour ton aide. En faite, ce qui m'interessais c'est de connaitre la position de ma form. On les obtiens avec Me.left et Me.right. Ces deux paramètres doivent être sauvegardé dans un fichier texte. J'ai donc écris ceci :

Dim Position As String = "(" & Me.Left & "," & Me.Right & ")"
File.WriteAllText("c:\Configuration.txt", Position)

Et là... les problèmes commencent. J'ai une erreur qui me dit que je n'ai pas les privilèges (vista). Comment faire ??

Merci
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 déc. 2009 à 13:49
Bonjour,

peut-être choisir d'écrire un fichier texte là où (dans un répertoire où) tu as le droit d'écrire. Il est clair qu'il te sera impossible d'écrire dans C: si toi-même ou l'administrateur a affublé ce répertoire de restrictions de sécurité.


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
26 déc. 2009 à 19:12
En même temps, écrire dans la racine du DD système est une très mauvaise idée, et heureusement que Vista t'en empêche : qui te dit que celui qui utilise ton application est administrateur de la machine ? Ecris dans %USERPROFILE%\Application Data, là tu n'auras pas de problème pour lire/écrire.
---
VB.NET is good ... VB6 is better
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tweet75 Messages postés 87 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 janvier 2012
27 déc. 2009 à 13:05
Salut,

J'ai enregistré le fichier dans c:\test et là ça marche mais à terme je le metrais comme l'as dit ghuysmans99.

Je suis confronté a un souci de programme. Voici mon programme :


If TextBox1.Text = "SIZE" Then

Dim Position As String = Me.Left & "," & Me.Right
File.WriteAllText("c:\test\Configuration.txt", Position)
Exit Sub
End If

...


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim position As String

On Error GoTo erreur
position = File.ReadAllText("c:\test\Configuration.txt")
Me.Location = New Point(position)
Exit Sub


erreur:
MsgBox("pas de configuration")


End Sub

Au démarrage, ma form s'affiche bien en X mais pas en Y. Elle se met directement tout en haut de l'écran alors que j'avais enregistré la form en milieu d'écran.

Un avis du problème ?
0
Tweet75 Messages postés 87 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 janvier 2012
27 déc. 2009 à 13:16
Apparament, cela viendrait de : "Me.Location = New Point(position)". Si position = 500,500 ça m'affiche la form tout en haut mais si je met Me.Location = New Point(500,500) La fenetre est bien positionné...
0
Tweet75 Messages postés 87 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 janvier 2012
27 déc. 2009 à 20:20
Alors j'ai résolu mon problème. Pour ceux qui seront dans mon cas, voici ce qu'il faut faire :

Enregistrer la position de la form et la stocker dans un fichier texte :

Dim Position As String = Me.Left & "," & Me.To
File.WriteAllText("c:\test\Configuration.txt", Position)


Positionner la form où l'on veut :

Me.Location = New Point(X, Y)

Charger la position de la form :

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim tableau() As String
Dim position As String

position = File.ReadAllText("c:\test\Configuration.txt")
tableau = Split(position, ",")
Me.Location = New Point(tableau(0), tableau(1))
End Sub


Voila
0
Rejoignez-nous