LONGUEUR EN PIXEL D'UNE CHAINE DE CARACTERE

Signaler
Messages postés
19
Date d'inscription
lundi 8 décembre 2003
Statut
Membre
Dernière intervention
27 avril 2006
-
 Utilisateur anonyme -
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33625-longueur-en-pixel-d-une-chaine-de-caractere

Utilisateur anonyme
bonsoir, j'ai posé cette source en sachant pertinemment qu'il y avait mieux a faire.... Malheuresement ce probleme ne se posera plus puis ... je passe sous java ! Merci pour le complément
Messages postés
97
Date d'inscription
vendredi 22 octobre 1999
Statut
Membre
Dernière intervention
13 juin 2016
1
Cet post date un peu, mais effectivement la méthode la plus simple et rapide est d'utiliser MeasureString()

Comme il n'y avait pas d'exemple précis dans cette discussion, en voici un avec l'objet ListView en affichage "Details", pour redimensionner la largeur d'une colonne

' Déclarations
Dim leGraphic As Graphics = laListView.CreateGraphics
Dim unItem as ListViewItem = Nothing
Dim tailleChaine As Integer = 0

' Ajout d'un nouveau texte dans la liste
unItem = laListView.Items.Add("une chaine de longueur variable...")
' Récupération de la taille
tailleChaine = CInt(leGraphic.MeasureString(unItem.Text, unItem.Font).Width)

' Si la largueur de la colonne est inférieur au texte ajouté, alors
' on met à jour la taille de la colonne pour tout afficher
If tailleChaine > laListView.Columns.Item(0).Width Then laListView.Columns.Item(0).Width = tailleChaine

Ce petit code peut-être complété dans une boucle d'ajout de texte, la largeur affichée de la colonne sera toujours calée sur la plus grande chaine. On peut bien évidement varier et ce caler sur la plus petite... c'est libre court à la créativité !
Messages postés
84
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
17 février 2008

Bon sinon, pour la mesure d'un string, partout je vois que Graphics.MeasureString(texte, font) est la meilleure techniques pour des utilisations non répétitives (et de courts textes). Vu que l'on transforme le texte en bitmap ... si cherche à mesurer la taille en pixel d'un livre entier... on va saturer la mémoire.
Messages postés
84
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
17 février 2008

Ah ok, merci à toi :)

J'ai eu souvent à lire tes codes et, bien que l'envie m'en démange, je n'en ferai pas les louanges, les jedis de l'informatique n'ont qu'a bien se tenir :)

Bon sinon, pour faire chier mon monde (il faut bien être un peu critique aussi), ce code n'est pas standard .NET (API = windows) donc pas compatible sous MONO. On ne devrait donc jamais utiliser d'API sous .NET.

Bon je me tais :x
Afficher les 18 commentaires