Largeur en pixel d'une chaine en .net [Résolu]

Signaler
Messages postés
135
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
10 mai 2012
-
Messages postés
97
Date d'inscription
vendredi 22 octobre 1999
Statut
Membre
Dernière intervention
13 juin 2016
-
Bonjour,

je l'aivais et l'ai plus comment connaitre en pixel la largeur d'une chaine en fonction de sa police. en .net 2005

merci

reno

4 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
tu as la méthode MeasureString de la classe Graphics de GDI+ ...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
135
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
10 mai 2012

oui mais obliger de créer un graphics pas d'autre solution ?

reno
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
tu doit pouvoir jouer avec un controle qui s'autosize selon le contenu, et lui demander sa largeur...

au pire, utiliser la Class graphics n'est pas très complexe, tu sais ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
97
Date d'inscription
vendredi 22 octobre 1999
Statut
Membre
Dernière intervention
13 juin 2016
1
J'ai posté cet exemple dans http://www.vbfrance.com/codes/LONGUEUR-PIXEL-CHAINE-CARACTERE_33625.aspx avec l'objet ListView en affichage "Details", pour redimensionner la largeur d'une colonne. Cela ne répond peut-être pas à la question, mais à priori, l'objectif est un affichage, il faut a priori un objet graphique, même en déclaration sans Form.

' 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