Centrer une Form [Résolu]

Cpapy - 26 janv. 2017 à 12:12 - Dernière réponse :  Cpapy
- 27 janv. 2017 à 11:00
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 

8 réponses

Répondre au sujet
cs_Le Pivert 4782 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 18 décembre 2017 Dernière intervention - Modifié par cs_Le Pivert le 26/01/2017 à 12:25
0
Utile
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
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - Modifié par ucfoutu le 26/01/2017 à 13:12
0
Utile
1
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 1388 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 15 décembre 2017 Dernière intervention - 26 janv. 2017 à 14:49
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
Utile
1
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 1388 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 15 décembre 2017 Dernière intervention - 26 janv. 2017 à 16:06
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
Utile
1
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 1388 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 15 décembre 2017 Dernière intervention - 26 janv. 2017 à 17:25
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
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.