cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 2017
-
17 mars 2009 à 12:25
xpert12
Messages postés114Date d'inscriptionlundi 5 février 2007StatutMembreDernière intervention10 septembre 2010
-
19 mars 2009 à 20:47
Bonjour,
J'utilse un MSHFlexGrid dont les colonnes sont ajustées en fonction du texte.
Si la largeur totale des colonnes est plus petite que la largeur de la grille je rallonge la dernière colonne afin d'éviter d'avoir une zone vierge en bout de grille.
Lorsque la largeur totale des colonnes est plus grande que la grille, je mets un ScrollBar et c'est là qu'intervient le problème. Quelque soit la largeur de la dernière colonne j'ai toujours à la fin de lagrille une zone vierge de largeur varaiable.
Comment peut-on, dans ce cas, calculer la largeur de la dernière colonne afin de résoudre ce problème ?
xpert12
Messages postés114Date d'inscriptionlundi 5 février 2007StatutMembreDernière intervention10 septembre 2010 17 mars 2009 à 14:33
Dim PositionDerniereColonne As Integer
Dim Quelletaille As Integer
'rappel nombre de colonne = MSFlexGrid1.Cols mais on commence à compter à partir de Zéro donc on enlève 1
PositionDerniereColonne = MSFlexGrid1.Cols - 1
'on demande la taille de la colonne
Quelletaille = MSFlexGrid1.ColWidth(PositionDerniereColonne)
MsgBox "la dernière colonne fait " & Quelletaille
xpert12
Messages postés114Date d'inscriptionlundi 5 février 2007StatutMembreDernière intervention10 septembre 2010 17 mars 2009 à 14:34
Dim PositionDerniereColonne As Integer
Dim Quelletaille As Integer
'rappel nombre de colonne = MSFlexGrid1.Cols mais on commence à compter à partir de Zéro
'donc on enlève 1
PositionDerniereColonne = MSFlexGrid1.Cols - 1
'on demande la taille de la colonne
Quelletaille = MSFlexGrid1.ColWidth(PositionDerniereColonne)
MsgBox "la dernière colonne fait " & Quelletaille
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 20172 17 mars 2009 à 20:36
Bonsoir xpert12
Merci pour ta réponse, mais il me semble que tu n'a pas compris le sens de ma question.
Tu me proposes de calculer la largeur de la dernière colonne alors que j'écris :
- Si la largeur totale des colonnes est plus petite que la largeur de la grille je rallonge la dernière colonne afin d'éviter d'avoir une zone vierge en bout de grille.
Donc celle-ci fait en largeur : largeur_grille - total_largeur_autres_colonnes.
Le problème se situe quand l'ensemble des colonnes est plus grand que la grille, je ne trouve pas comment faire afin de ne pas avoir de zone vierge après la dernière colonne quand j'utilise le ScrollBar.
Il n'est pas quetion de racourcir la dernière colonne pour faire tenir l'ensemble dans la largeur de la grille.
cnt
Messages postés219Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention20 décembre 20101 19 mars 2009 à 01:34
Salut
j'ai déjà eu cette exigence, en voici un exemple à affiner, çà peut te mettre sur la voie
With MSFlexGrid1
If .ColWidth(1) + .ColWidth(2) + .ColWidth(3) > .Width Then
If .ColWidth(2) + .ColWidth(3) < .Width Then
.ColWidth(3) = .Width
End If
End If
End With
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 20172 19 mars 2009 à 13:39
Bonjour cnt,
Merci pour ta réponse, mais elle ne me convient que partiellement car le fait de mettre la dernière colonne à la largeur de la grille fait que la colonne devient très large. Tant que l'on ne scrolle pas c'est parfait sinon ce n'est pas esthétique.
L'idéal aurait été de pouvoir combler juste la zone vierge en bout de grille.
J'aurai bien validé ta réponse à moitié, mais on ne peut pas ;)