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

Windows Forms Discussion :

Synchroniser Scrollbar avec son contenu


Sujet :

Windows Forms

  1. #1
    Membre régulier Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 105
    Points
    105
    Par défaut Synchroniser Scrollbar avec son contenu
    Salut,.

    Graçe à des liens trouvés sur le net (comme celui-ci), j'ai réussi à synchroniser deux scrollbars entre deux TreeView. Les deux bougent parfaitement en même temps. Seulement elles ne font pas bouger le "contenu" des TreeView !
    En clair, si je monte la scrollbar du TreeView1, la scrollbar du TreeView2 monte mais le contenu du TreeView2 reste figé.
    Pas moyen de mettre à jour l'affichage, ni avec .PerformLayout, ni avec .Refresh...

    Est ce que quelqu'un sait comment coordonner la position de la scrollbar et le contenu dans ce cas là ?

    merci d'avance
    un tiens vaut pas mieux que zéro tu l'auras pas

  2. #2
    Membre régulier Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 105
    Points
    105
    Par défaut
    haha, victory is mine!

    Après bien des efforts, voila la solution pour les curieux : (enfin, une des solution...)

    Dans la méthode treeView_Scroll :

    NE PAS faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monTreeView_B.VScrollPos = monTreeView_A.VScrollPos;
    (ca ne fait bouger que la scrollBar de treeView B, pas son texte)

    PLUTOT faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SendMessage(this.monTreeView_B.Handle, WM_VSCROLL, 1, 0);//pour descendre
    //ou
    SendMessage(this.monTreeView_B.Handle, WM_VSCROLL, 0, 0);//pour monter
    (ca fait bouger le texte de treeView B, et sa scrollbar avec).

    Il faut déclarer au préalable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            [System.Runtime.InteropServices.DllImport("user32.dll")]
            public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
            const int WM_VSCROLL = 0x0115;
    Pour affiner la chose, au cas ou la coordination n'est pas parfaite (l'appel à scroll est sans doute régulé par un timer, ce qui fait que si je descend très vite la ScrollBar A, la ScrollBar B n'ira pas aussi vite car le nombre d'appel à SendMessage ne sera pas suffisant) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while (monTreeViewB.HScrollPos.Equals(monTreeViewA.HScrollPos).Equals(false)) //Tant que les deux Scroll ne sont pas à la même hauteur
    {
        ...    
        SendMessage(......);//on bouge le texte (haut ou bas)
        ...
    }
    voila voila
    un tiens vaut pas mieux que zéro tu l'auras pas

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/03/2009, 22h30
  2. Enregistrer une picture box avec son contenu
    Par kinkinhxc dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/03/2008, 15h36
  3. [RegEx] supprimer une balise html avec son contenu
    Par waldoun dans le forum Langage
    Réponses: 7
    Dernier message: 06/02/2008, 11h19
  4. récuperer une Balise avec son contenu à partir d'un objet String
    Par khaledUSTHB dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 08/10/2007, 13h24
  5. deplacer un frame avec son contenu (VB6)
    Par josémaria dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/02/2007, 09h56

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