Dernière colonne dans MSHFlexGrid

cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 17 mars 2009 à 12:25
xpert12 Messages postés 114 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 10 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 ?


Merci de votre aide et bonne journée,


Cheyenne

6 réponses

xpert12 Messages postés 114 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 10 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
0
xpert12 Messages postés 114 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 10 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
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
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.

Voilà, bonne soirée.

Amicalement de Cheyenne
0
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
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 ;)

Cheyenne
0
xpert12 Messages postés 114 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 10 septembre 2010
19 mars 2009 à 20:47
Salut,

c'est du bidouillage mais t'as qu'à mettre un contrôle sur le scroll pour retomber sur tes pattes.

ok on cherche encore !
0
Rejoignez-nous