Connaitre la longueur en pixel d'un texte dans un label [Résolu]
tservolle28
Messages postés mardi 7 mars 2006Date d'inscription
22 janvier 2007
Dernière intervention
-
27 juil. 2006 à 14:34 - Dernière réponse : sebmafate4947
Messages postés lundi 17 février 2003Date d'inscription
14 février 2014
Dernière intervention
- 27 juil. 2006 à 15:52
Bonjour,
Voila je cherche à connaitre la longueur utilisé par une chaine de caractere affiché dans un label,
Mon but est de pouvoir savoir lorsqu'elle depasse de la taille du label afin d'afficher une chaine abrégé.
j'ai ecris la methode suivante mais le résultat est pas terrible lorsque la police n'est pas une police avec largeur fixe
public
static
void fillLabel(Label label,
string largeText,
string smallText){
if (label.Width > largeText.Length * (label.Font.SizeInPoints))label.Text = largeText;
sinon, il y a la propriété [P_System_Windows_Forms_Label_AutoEllipsis.htm AutoEllipsis] du Label pour afficher automatiquement ... lorsque la chaine est trop longue.
Dans mon cas AutoEllipsis ne me convient pas car en fait je ne veux par mettre ... a la fin de mon texte, mais je veux ecrire
c:\rep1\...\rep5\toto.doc a la place de c:\rep1\rep2\rep3\rep4\rep5\toto.doc
Je prefere la metgode utilsiant graphics que Label.PreferredWidth car je peux tester ma chaine avant de l'affecter au label.Text.
Dans tous les cas, merci a tous, car j'ai appris plein de chose sur les labels grace a toutes vos reponses
en fait, ce qui est dommage avec cette propriété, c'est qu'il n'est pas possible de spécifier le type d'Ellipsis.
Il en existe 3 types :
<ol><li>Fin de ligne : bla bla bl...</li><li>Path : bla ... bla</li><li>Mot : bla bla ...</li></ol>à l'occasion, je ferais un controle pour ca... ca peut toujours servir ;)