Centrer une Form [Résolu]

-
Bonjour,

J'ai deux ordinateurs dont les caractéristiques techniques sont les suivantes:
- Un Windows XP -> 1440 x 900 et Screen.width -> 21.600 x 13.500
- Un Windows 8 -> 1600 x 900 et Screen.width -> 24000 x 13500.

Lorsque que souhaite centrer mes forms, j'utilise l'instruction suivante:

- Me.move (Screen.Width - Me.Width) / 2 , (Screen.Height - Me.Height) / 2

L'affichage est correcte avec Windows XP - Ma form est cadrée à GAUCHE avec Windows 8

Comment centrer correctement mes forms sur ces deux ordinateurs

Par avance Merci
Afficher la suite 

5 réponses

Messages postés
6435
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2019
91
0
Merci
Bonjour,

Voir ceci:

http://codes-sources.commentcamarche.net/forum/affich-10069581-formstartposition

Je n'avais pas vu que c'est dans le Forum VB6, le code m'a trompé, on dirait du VB.Net
Excuse
@+ Le Pivert
Commenter la réponse de cs_Le Pivert
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
0
Merci
Bonjour,
mis à part le fait que la propriété dont parle cs_Le Pivert (que je salue) existe également sous bVB6 sous le nom de StartUpPosition :
La méthode que tu utilises, à savoir :
- Me.move (Screen.Width - Me.Width) / 2 , (Screen.Height - Me.Height) / 2 

a un défaut majeur, car la propriété Width de l'objet Screen est en échelle de Pixels alors que par défaut (si le scale mode n'a pas été fixé en pixels ou autre unité logique ) , la propriété Width de ton Form est en échelle de Twips !

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
vb95
Messages postés
1985
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
14 décembre 2019
79 -
bonjour à tous
une précision sur la propriété StartUpPosition : celle-ci ne serait effective qu'au chargement de le Form en VBNet ( voir http://codes-sources.commentcamarche.net/forum/affich-10069581-formstartposition)
Il est possible qu'il en soit de même en VB 6 ( je ne l'ai pas donc je ne peux pas vérifier)
De toute façon si c'est au chargement de la Form autant le définir en mode Design en agissant dans le fenêtre "Propriétés" de la Form sur la propriété adéquate et non par code au Form_Load de cette Form
Commenter la réponse de ucfoutu
0
Merci
Bonjour,

Je suis Perdu !

J'ai testé ce projet sur des ordinateurs XP et Vista avec des résolutions différentes:
- 1024 x 768 - 1280 x 768 - 1280 x 800 - 1440 x 900
- 1920 x 1080.

Sur ces ordinateur, l'affichage est correcte.

Ce n'est qu'en Windows 8 -> 1600 x 900 que les forms sont affichées à GAUCHE.

En changeant le Scalemode des Forms (en Pixel) l'affichage est complètement bouleversé.

Merci Mr ucfoutu
vb95
Messages postés
1985
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
14 décembre 2019
79 -
bonjour Cpapy
Centres-tu ta Form par code ou par la fenêtre de propriétés de ta Form ?
Commenter la réponse de Cpapy
0
Merci
Bonjour vb95,

Dans l'essai que j'ai fais, j'ai laissé l'instruction Me.move ...........
derrière Private Sub Form_Load()


et j'ai modifié les Scalemode par les fenêtres de Propriétés des forms

Encore Merci.
vb95
Messages postés
1985
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
14 décembre 2019
79 -
A tester
1) Enlève toute l'instruction Me.Move dans le Form_Load
2) Passe en mode Design ( affichage de la Form)
3) Fais un clic droit avec la souris sur la form ( pas sur un contrôle de la Form)
4) tu vois apparaître une fenêtre "Propriétés"
5) Cherches dans cette liste StartUpPosition
6) Mets cette propriété sur Center ou CenterForm
7) Remets ScaleMode en Twips ( propriété par défaut)
8) Redémarre ton projet

Si c'est au chargement de la Form autant centrer cette Form par la fenêtre des Propriétés : pourquoi écrire du code pour cela
Commenter la réponse de Cpapy
0
Merci
Bonjour Vb95 ,

Je viens de modifier mon programme comme vous me l'avez suggéré et maintenant, ça marche !

Merci à vous.

Très cordialement.
Commenter la réponse de Cpapy