IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6][MsFlexGrid] ScrollBars = 0 et première ligne invisible


Sujet :

VB 6 et antérieur

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut [VB6][MsFlexGrid] ScrollBars = 0 et première ligne invisible
    Bonjour,

    j'utilise souvent des MsFlexgrid pour lister les enregistrements de mes tables de bases de données.
    J'ai remarqué un fonctionnement pour le moins bizarroïde lorsque j'alimente la grille normalement par la méthode .AddItem et que j'ai la propriété ScrollBars de ma grille à 0 (flexScrollBars None = pas d'ascenseur vertical ou horizontal) : la première ligne (row = 0) disparaît systématiquement.
    Elle existe bien mais elle est masquée, et ce, quel que soit le nombre d'enregistrements (c'est à dire même si il n'y en a pas assez pour dépasser la hauteur de la grille).
    Un Ctrl + Pause m'a tout de même appris que la ligne 0 existait bien, que sa hauteur était bien celle que je lui ai fixé et que les cellules la composant étaient correctement remplies... elle est seulement invisible, voilà tout.
    Dès que je remets la propriété ScrollBars à 1 ou 2 , la première ligne réapparaît comme par enchantement...

    Je précise que ma propriété FixedRows est à 0 car je gère les entêtes de grille différemment pour une histoire de tri de mes enregistrement, la première ligne réapparaît également si FixedRows = 1... (c'est la ligne fixe)

    J'espère avoir été clair, du moins pour ceux qui connaissent bien ce type de grille. Pensez-vous à un bug du composant ou j'ai vraiment raté quelque chose ?

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Que vaut la propriété TopRow de ton FlexGrid ? Pour voir la première ligne, il faut que TopRow = 1, mais peut-être est-elle mise à jour (à 2) ?
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    TopRow = 1

    Tout a l'air normal...

  4. #4
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Points : 739
    Points
    739
    Par défaut
    Bonjour,

    Sachant que tu n'as pas de FixedRows alors TopRow devrait être égal à 0 ...
    cf aide MSDN :

    Citation Envoyé par MSDN TopRow
    Renvoie ou définit la ligne visible supérieure (autre qu'une ligne fixe) dans le contrôle MSHFlexGrid
    non ?

    Théo
    Forums VB : lire la notice
    La touche existe pour être utilisée
    Pensez au tag
    Pour ceux n'ayant pas l'aide installée :
    - Aide MSDN pour VB6
    - Aide MSDN pour VBA
    Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Pour info

    Lorsque la propriété ScrollBars est définie avant le nombre de lignes et de colonnes, seules les 2 premières lignes s'affichent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
        With MSFlexGrid1
            '
            .ScrollBars = flexScrollBarNone
            '
            .Rows = 0
            .Cols = 3
            '
            .Height = 2500
            .Width = 3500
            '
            .AddItem " X " + Chr(9) + "O" + Chr(9) + "X"
            .AddItem " O " + Chr(9) + "X" + Chr(9) + "O"
            .AddItem " X " + Chr(9) + "O" + Chr(9) + "X"
            '
            .FixedRows = 0
            .FixedCols = 0
            '
        End With

    Et lorsqu'elle est définit après, ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
        With MSFlexGrid1
            '
            .Rows = 0
            .Cols = 3
            '
            .ScrollBars = flexScrollBarNone
            '
            .Height = 2500
            .Width = 3500
            '
            .AddItem " X " + Chr(9) + "O" + Chr(9) + "X"
            .AddItem " O " + Chr(9) + "X" + Chr(9) + "O"
            .AddItem " X " + Chr(9) + "O" + Chr(9) + "X"
            '
            .FixedRows = 0
            .FixedCols = 0
            '
        End With
    Et comme je gérais la propriété ScrollBars directement par la fenêtre de propriétés du composant (F4), CQFD !

    ps :
    Sachant que tu n'as pas de FixedRows alors TopRow devrait être égal à 0 ...
    Tu as raison Théo, TopRow devrait être à 0

    pps : c'est "X" qui gagne à la fin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. effacer la première ligne
    Par ibtisss dans le forum Langage
    Réponses: 2
    Dernier message: 05/01/2006, 10h32
  2. Seulement la première ligne du JTable s'affiche
    Par szdavid dans le forum Composants
    Réponses: 4
    Dernier message: 10/05/2004, 10h37
  3. Comment sélectionner la première ligne ?
    Par MartinH dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/04/2004, 11h56
  4. [VB6] Titre de colonne sur 2 lignes
    Par falbalaa dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/02/2004, 20h46
  5. [VB6]Changer la couleur d'une ligne d'un ListView
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/03/2003, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo