2009-05-11 10 views
0

J'essaie de déterminer la meilleure façon de redimensionner par programme les en-têtes de colonne de table dans ReportViewer.Redimensionner automatiquement les colonnes en fonction du nombre de caractères

Fondamentalement, ma résolution actuelle est la suivante:

ColumnWidth = HeaderCaption_CharacterCount * 0.32 

Où est 0.32 une largeur estimée d'un caractère typique en utilisant ma taille de police. Le problème est que la largeur laisse beaucoup d'espace pour les légendes plus longues. Plus il y a de caractères dans une légende, plus je me retrouve avec des espaces.

Le problème avec cette estimation est que tous les caractères n'ont pas la même largeur. Un bon exemple serait le caractère "I", qui occupe moins de largeur d'écran que le reste de l'alphabet.

Quelqu'un peut-il suggérer une meilleure façon de procéder?

EDIT J'ai trouvé une meilleure façon de gérer cela. Il existe une méthode qui calcule la largeur (en pixels) d'une chaîne de texte. J'expérimente actuellement avec ceci, et il semble prometteur.

Répondre

0

Size = TextRenderer.MeasureText([String], [Font])

fonction calcule la largeur d'une chaîne spécifiée, avec une police de caractères spécifiée.

Questions connexes