Redimensionnement automatique des colonnes d'une FlexGrid

OCh Messages postés 4 Date d'inscription jeudi 10 janvier 2002 Statut Membre Dernière intervention 31 janvier 2002 - 10 janv. 2002 à 14:17
cs_coyote Messages postés 45 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 28 novembre 2008 - 10 janv. 2002 à 15:32
Y-a-t-il un moyen de faire en sorte que la taille des colonnes d'une FlexGrid s'ajuste sur la taille maximale des valeurs contenues dans la colonne.
L e nombre de champs n'étant pas connu avant de lancer l'application, il n'y a pas moyen de prédéfinir les taille de colonne.

1 réponse

cs_coyote Messages postés 45 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 28 novembre 2008
10 janv. 2002 à 15:32
Je ne sais pas si il existe de methode prés définie, mais tu peux toi meme rechercher la longueur du string le plus long pour une colonne.
Voici une facon de faire pour une MSFlexGrid:

'pour une colonne donnée
Private Sub ajusteLargeur(msfg As MSFlexGrid, col As Integer)
Dim max As Integer
Dim index As Integer
max = 0
Printer.FontBold = msfg.Font.Bold
Printer.FontItalic = msfg.Font.Italic
Printer.FontName = msfg.Font.Name
Printer.FontSize = msfg.Font.size
For index = 1 To msfg.Rows - 1
If max < Printer.TextWidth(msfg.TextMatrix(index, col) + " ") Then max = Printer.TextWidth(" " + msfg.TextMatrix(index, col) + " ")
Next
msfg.ColWidth(col) = max
End Sub

'pour toute la table
Private Sub ajusteTable(msfg As MSFlexGrid)
Dim index As Integer
For index = 1 To msfg.Cols - 1
ajusteLargeur msfg, index
Next
End Sub

'=> ces methodes ne prennent en compte ni la ligne 0 ni la colonne 0.
0
Rejoignez-nous