Centrer une Form

Résolu
Cpapy - Modifié par Cpapy le 26/01/2017 à 12:13
 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

5 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
Modifié par cs_Le Pivert le 26/01/2017 à 12:25
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 26/01/2017 à 13:12
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.
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
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
0
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
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
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 ?
0
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.
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
Modifié par vb95 le 26/01/2017 à 17:30
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
0

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

Posez votre question
Bonjour Vb95 ,

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

Merci à vous.

Très cordialement.
0
Rejoignez-nous