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
Dernière intervention
22 janvier 2007
- 27 juil. 2006 à 14:34 - Dernière réponse : sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
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
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
MorpionMx
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
- 27 juil. 2006 à 15:00
3
Merci
Salut

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

Mx
MVP C# 

Merci MorpionMx 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de MorpionMx
Meilleure réponse
cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
- 27 juil. 2006 à 15:02
3
Merci
Salut,
Tu peux utiliser la méthode MeasureString de la classe Graphics...

VC# forever

Merci cs_Bidou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

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

VC# forever
Commenter la réponse de cs_Bidou
Lutinore
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
- 27 juil. 2006 à 15:13
0
Merci
C'est pas le rôle des methodes Label.PreferredWidth et Label.PreferedHeight !?
Commenter la réponse de Lutinore
sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
- 27 juil. 2006 à 15:16
0
Merci
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
Messages postés
28
Date d'inscription
mardi 7 mars 2006
Dernière intervention
22 janvier 2007
- 27 juil. 2006 à 15:23
0
Merci
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
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
- 27 juil. 2006 à 15:36
0
Merci
Seb > Ton link est mort...

VC# forever
Commenter la réponse de cs_Bidou
sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
- 27 juil. 2006 à 15:47
0
Merci
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
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
- 27 juil. 2006 à 15:52
0
Merci
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.