Connaitre la longueur en pixel d'un texte dans un label [Résolu]

tservolle 28 Messages postés mardi 7 mars 2006Date d'inscription 22 janvier 2007 Dernière intervention - 27 juil. 2006 à 14:34 - Dernière réponse : sebmafate 4947 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;

elselabel.Text = smallText ;

}

Est ce que quelqu'un a une idee
Merci d'avance
Afficher la suite 

9 réponses

Répondre au sujet
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 27 juil. 2006 à 15:00
+3
Utile
Salut

Tu peux faire cela avec la méthode Graphics.MesureString

Mx
MVP C# 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de MorpionMx
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 27 juil. 2006 à 15:02
+3
Utile
Salut,
Tu peux utiliser la méthode MeasureString de la classe Graphics...

VC# forever
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Bidou
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 27 juil. 2006 à 15:03
0
Utile
Une fois de plus, eu par le refresh !

VC# forever
Commenter la réponse de cs_Bidou
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 27 juil. 2006 à 15:13
0
Utile
C'est pas le rôle des methodes Label.PreferredWidth et Label.PreferedHeight !?
Commenter la réponse de Lutinore
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 27 juil. 2006 à 15:16
0
Utile
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.

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate
tservolle 28 Messages postés mardi 7 mars 2006Date d'inscription 22 janvier 2007 Dernière intervention - 27 juil. 2006 à 15:23
0
Utile
Merci a Tous,


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
Commenter la réponse de tservolle
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 27 juil. 2006 à 15:36
0
Utile
Seb > Ton link est mort...

VC# forever
Commenter la réponse de cs_Bidou
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 27 juil. 2006 à 15:47
0
Utile
oops... c'est pas grave, c'est un copier/coller de la documentation MSDN

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 27 juil. 2006 à 15:52
0
Utile
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 ;)

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate

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.