Connaitre la longueur en pixel d'un texte dans un label

Résolu
tservolle Messages postés 28 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 22 janvier 2007 - 27 juil. 2006 à 14:34
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 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

9 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
27 juil. 2006 à 15:00
Salut

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

Mx
MVP C# 
3
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
27 juil. 2006 à 15:02
Salut,
Tu peux utiliser la méthode MeasureString de la classe Graphics...

VC# forever
3
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
27 juil. 2006 à 15:03
Une fois de plus, eu par le refresh !

VC# forever
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
27 juil. 2006 à 15:13
C'est pas le rôle des methodes Label.PreferredWidth et Label.PreferedHeight !?
0

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

Posez votre question
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
27 juil. 2006 à 15:16
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#]
0
tservolle Messages postés 28 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 22 janvier 2007
27 juil. 2006 à 15:23
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
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
27 juil. 2006 à 15:36
Seb > Ton link est mort...

VC# forever
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
27 juil. 2006 à 15:47
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#]
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
27 juil. 2006 à 15:52
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#]
0
Rejoignez-nous