Adapté la largeur d'un checkBox en fonction de son texte [Résolu]

cs_magslide 6 Messages postés mercredi 19 juillet 2006Date d'inscription 28 septembre 2010 Dernière intervention - 1 juil. 2010 à 00:44 - Dernière réponse : cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention
- 1 juil. 2010 à 12:09
Bonjours tous le monde !

Je voudrais savoir si sous vb6 on peut adapté la largeur (width) d'un checkbox (le programme étant bien sur en cours d'exécution) en fonction d'un nouveau texte (Caption) que l'on envoi à se dernier au cour de l'exécution du programme.
Le problème est que si la largeur du checkbox est trop petite pour contenir le texte envoyé, ce dernier s'écrit sur plusieurs ligne (si possible suivant la hauteur définit du checkBox) et le texte se trouve tronqué pour les lettres en trop.

Comment connaitre la largeur que ce contrôle aura avec son nouveau texte pour pouvoir modifier exactement la largeur ?

Merci beaucoup de m'avoir lu !!
Merci aussi pour votre aide.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 1 juil. 2010 à 10:18
3
Merci
Salut
Et pourquoi ne donnes-tu pas une largeur plus importante à la CheckBox ?

En VB6 (pas en VBA), tu peux faire comme ça :
En général, on n'écrit jamais sur le fond d'une forme elle même. On va donc utiliser ces propriétés :
Dans les propriétés de ta forme, tu mets les même propriétés de Fonte que celles de ta CheckBox (Police, taille, gras, ...)
Quand tu veux connaître la longueur d'un texte, donc la largeur de ta CheckBox, il te suffit de le calculer avec :
maCheckBox.Width = maForme.TextWidth("mon texte à insérer") + 300
maCheckBox.Caption = "mon texte à insérer"
Le "+ 300", c'est à peu près la largeur de la case à cocher - à affiner si besoin

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_Jack
cs_magslide 6 Messages postés mercredi 19 juillet 2006Date d'inscription 28 septembre 2010 Dernière intervention - 1 juil. 2010 à 10:39
0
Merci
Merci beaucoup pour ta réponse !

En faite ce que je veux obtenir c'est un contrôle activex ressemblant à ça :
Ce contrôle contient un frame + 1 checkBox, cet exemple provient de Qt

Mon problème est que lorsqu'on choisit un titre plus ou moins long pour ce contrôle, la largeur de la checkBox doit pouvoir s'adapter sans pour autant effacer la bordure du haut comme sa :


et donc je pensé y arriver en adaptant le plus exactement possible la largeur de la checkBox. Je ne peux pas me permettre de donner une largeur plus importante comme tu me le propose...


Merci beaucoup pour ton aide
Commenter la réponse de cs_magslide
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 1 juil. 2010 à 11:29
0
Merci
Et le code proposé résout-il ton problème ?
Commenter la réponse de cs_Jack
cs_magslide 6 Messages postés mercredi 19 juillet 2006Date d'inscription 28 septembre 2010 Dernière intervention - 1 juil. 2010 à 11:39
0
Merci
oui parfaitement !!!
Merci beaucoup !!!
Commenter la réponse de cs_magslide
cs_magslide 6 Messages postés mercredi 19 juillet 2006Date d'inscription 28 septembre 2010 Dernière intervention - 1 juil. 2010 à 11:42
0
Merci
Par contre c'est pour quoi le maForme juste avant TextWidth ?

Désolé je suis un peu tête en l'air et j'ais oublié de te le demander...
Commenter la réponse de cs_magslide
cs_magslide 6 Messages postés mercredi 19 juillet 2006Date d'inscription 28 septembre 2010 Dernière intervention - 1 juil. 2010 à 11:52
0
Merci
C'est bon j'ais regardé la documentation pour mieux comprendre la methode TextWidth.
Désolé pour tous ces messages inutile.
Commenter la réponse de cs_magslide
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 1 juil. 2010 à 12:09
0
Merci
Oui, maForme, c'est le nom de ta forme.
On peut aussi utiliser Me. quand on code à l'intérieur de cette forme
Commenter la réponse de cs_Jack

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.