Redimensionnement proportionnel

Signaler
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008
-
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
-
Bonjour à tous,
Comment redimensionner des contrôles proportionnellement à la taille de la fenêtre ?
Je m'explique : Dans ma form j'ai deux groupbox. Pour garder des marges constantes j'utilise la propriété anchor. Mais pour les groupbox ça ne marche que partiellement. Comme les marges restent constantes, la groupbox de gauche garde la même taille en largeur peu importe la taille totale de la fenêtre, tandis que celle de droite a une trés largeur que varie en fonction de la taille totale de la fenêtre.
J'ai cru comprendre dans d'autres messages qu'il fallait utiliser
Private
Sub Form1_Resize()

Mais je ne sais pas quoi mettre comme formule pour garder la proportionnalité entre les groupbox.

Comment faire pour que les deux groupbox aient la même taille et que la somme des deux soit égale à la taille totale de la fenêtre ?
Merci d'avance

8 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
salut,

je ne vais pas beaucoup t'aider car je ne programme pas en dot net, mais regarde ma source VB6 et essaie de la retranscrire en vb.Net

http://www.vbfrance.com/codes/METHODE-ZOOM-SUR-FORM-CONTROLES_40519.aspx

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
9
Dans l'évènement Form_Resize, tu commence par calculer ta place disponible pour afficher les 2 GroupBox. Il s'agit par exemple de la taile de la fenêtre - les marges. Un truc du genre:
Dim DisponibleWitdh As Integer = Me.Width - 20
Ensuite, tu partage cette place disponible pour les 2 GroupBox et tu place la 2ème GroupBox au bon endroit:
GroupBox1.Width = DisponibleWitdh / 2
GroupBox2.Width = DisponibleWitdh / 2
GroupBox2.Left = DisponibleWitdh / 2
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Juèste une questioon toute bêrte :

Tu développes bien sous VB.Net (la présente section) ???
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008

[auteur/JMFMARQUES/615490.aspx jmfmarques] ---> oui



[auteur/KEVINORY/183467.aspx Kevin.Ory] ---> j'ai bidouillé avec des maths et c'est bon par contre, j'ai encore un truc bizarre ! (Comme d'hab)
J'ai placé tout ça dans
Private Sub Form1_Resize
Donc j'ai fait quelques tests:
1) Je lance l'appli en taille normale. Tout va bien
2) Je clique sur l'icone en haut à droite pour maximiser la fenêtre, et là lorsque je me balade dans mes tabpage, je m'apperçois que seule la tabpage qui était active lors du redimensionnement a les bonnes dimenions. Je reclique donc sur l'icone pour repasser en mode normal et je remaximise (toujours avec le même icone). Et là miracle, toutes les groupbox des toutes les tabpages ont les bonnes dimensions !?
Avez vous une idée ?
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
si ton truc a besoin de 2 resize pour fonctionner alors









Call

Form1_Resize(sender, e)
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008

Mais je n'utilise pas :
Call Form1_Resize

J'ai juste un pb avec différentes tabpages qui contiennent des contrôles qui ne se redimensionnent pas tous lors de l'agrandissement de la fenêtre ! Seul les contrôles de la tabpage active sont redimensionnée correctement, les autres sont hors sujet. Pour les voir correctement, je dois agrandir, rétrécir et réagrandir ? Normal ?
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
je me suis toujours demandé si les logiciels que j'utilises sont normaux!


il y a des tas de choses anormales, mais on finit par s'y faire ce que je te dis c'est juste Call Form1_Resize(sender, e)
comme ça puisque tes contrôles ont besoin de 2 resize pour être à la bonne taille ben quand tu as fini ton resize tu Call Form1_Resize(sender, e)
basta
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
9
"Je clique sur l'icone en haut à droite pour maximiser la fenêtre, et
là lorsque je me balade dans mes tabpage, je m'apperçois que seule la
tabpage qui était active lors du redimensionnement a les bonnes
dimenions. Je reclique donc sur l'icone pour repasser en mode normal et
je remaximise (toujours avec le même icone). Et là miracle, toutes les
groupbox des toutes les tabpages ont les bonnes dimensions !?


Avez vous une idée ?"

Sans doute parce que tes TabPages ne sont pas encore chargé lorsque tu places les éléments. Ensuite, la page se charge et les éléments ne sont pas au bon endroit.
Essaie de placer tes éléments dans l'évènement Resize (ou SizeChanged) de tes TabPages, et non de ton formulaire principal.