DéfinirPosScroll :la barre de défilement bouge, mais le contenu du contrôle ne se met pas à jour

StackOverflow https://stackoverflow.com/questions/2402119

  •  18-09-2019
  •  | 
  •  

Question

[DllImport("user32.dll")]
public static extern int SetScrollPos(IntPtr hWnd, int nBar, int nPos, bool bRedraw);
[DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
public static extern int GetScrollPos(int hWnd, int nBar);

Ce sont donc les externes que j'utilise pour déplacer la position de défilement, ce que je fais, c'est que j'obtiens la position actuelle et que j'ajoute ou soustrait une quantité exacte de pixels, et la barre de défilement de mon formulaire se déplace parfaitement comme je le souhaite, mais le le contenu du contrôle reste stationnaire.Quel est le problème ici?

Était-ce utile?

La solution

J'ai trouvé le bon appel API !:)

    public void ScrollTo(int Position)
    {
        SetScrollPos((IntPtr)this.Handle, 0x1, Position, true);
        PostMessageA((IntPtr)this.Handle, 0x115, 4 + 0x10000 * Position, 0);
    }

avant, j'utilisais simplement SetScrollPos, mais cela, combiné avec PostMessageA, fonctionne parfaitement

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top