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.NET Discussion :

DatGridView + ScrollBar


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut DatGridView + ScrollBar
    Bonjour,

    J'aurais souhaité savoir si quelqu'un saurait comment mettre une scrollbar dans une "COLONNE" d'un datagridview, c'est à dire que la scrollbar soit propre à la colonne uniquement (scrollbar horizontale au passage).

    La colonne étant un contrôle ceci est faisable, mais bon, avant de chercher à faire compliqué je demande des fois qu'il y ait une solution assez simple.

    Peut-être avec une HScrollBar, mais je ne suis pas sûr que je puisse attribué comme Parent une colonne d'un DGV. Oui et en fait VS ne reconnaît pas cette fichu colonne comme un contrôle il fallait s'en douter.

    J'ai pensé à un 2ème dgv a colonne unique (pour récupérer la scrollbar horizontale, mais cela ne va pas m'aider à cause de la scrollbar verticale qui ne sera pas couplée avec celle du DGV principal) superposé au dessus de mon dgv principal. En gros deux grid séparées.

    Merci.

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    On peut créér une VScrollBar qu'on positionnera au-dessus du DataGridViewHeader dont on aura augmenté la Height. On devra éventuellement repositionner cette VScrollBar sur les event ColumnDisplayIndexChanged (sur n'importe quelle colonne) et la redimensionner sur ColumnWidthChanged (sur la colonne contenant la ScrollBar).

    Pour tenir compte de la Value de la ScrollBar dans le rendu du DataGridView, on utilisera l'event CellPainting pour tracer le texte via un drawstring dont le x dépendra de la position la ScrollBar.

    Quand on bouge la Value de la VScrollBar, il faut redessiner la DataGridView avec (théoriquement) la méthode Refresh. Si le Refresh est inopérant (pas sur que tous les Refresh ou Repaint fassent bien leur boulot ), il faudra peut-être activer la method Paint() de chaque DataGridViewCell visible de la colonne. Pour déterminer les cellules visibles, on peut utiliser les propriétés FirstDisplayedCell, DisplayedRowCount et DisplayedColumnCount.

  3. #3
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    D'accord,

    Tout d'abord merci d'avoir répondu.

    Ceci dit, je vois l'idée mais cela m'a la'air assez compliqué, et je en suis pas sur que je vais y arriver tout seul comme un grand, mais bon je vais essayer.

    Au passage la colonne en question est de type Image et non text.

    Merci

  4. #4
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    En fait c'est une Hscrollbar et pas une Vscrollbar.

    Juste j'ajoute une image pour illustrer l'idée.

    Nom : scroll.PNG
Affichages : 135
Taille : 25,4 Ko

    Voilà mon tableau, avec la colonne en question, la scrollbar que l'on peut voir en dessous la colonne "Nombre de jours restants", avec des images dedans, et comme on peut voir mes images sont plus grandes que la taille de la cellule (et non je ne souhaite pas adapter l'image à la taille de la cellule).

    J'essaie encore de redessiner les cellules de ma colonne et de les lier à l'évènement de ma scrollbar mais j'y arrive pas .

  5. #5
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    En fait c'est une Hscrollbar et pas une Vscrollbar
    Je pensais H et j'ai écrit V .

    Tu pourrais d'abord essayer sur une colonne Texte le méchanisme.

    Et ensuite, sur la colonne PictureBox, le CellPainting consisterait peut-être simplement à modifier le Location.x de la PictureBox contenue dans la cellule.

    Par rapport à ton image, mon idée était de déplacer la ScrollBar sur le RowHeader en haut (donc un scroll sur toute la colonne et pas seulement sur une cellule).

  6. #6
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Par rapport à ton image, mon idée était de déplacer la ScrollBar sur le RowHeader en haut (donc un scroll sur toute la colonne et pas seulement sur une cellule).
    Oui oui je veux en effet un scroll sur toute la colonne.

    Par contre je veux la garder en bas, mais bon la position doit pas changer grand chose à mon avis.

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

Discussions similaires

  1. [Listbox] ScrollBar Horizontal
    Par haleem dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/04/2005, 07h53
  2. [FLASH MX2004] Personnaliser les scrollbars
    Par stephane eyskens dans le forum Flash
    Réponses: 10
    Dernier message: 09/10/2003, 12h53
  3. [VB6] [Scrollbar] Valeur maximale supérieure à 32750
    Par néo333 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/12/2002, 10h24
  4. [VB6][Formulaire]Appliquer un Scrollbar a une Form
    Par Boil dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/11/2002, 03h51
  5. [visuel]ScrollBar et StatusBar
    Par psl dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/08/2002, 21h28

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