SetScrollPos: полоса прокрутки движется, но управление контентом не обновляется - PullRequest
0 голосов
/ 08 марта 2010
[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);

Так что это внешние, которые я использую для перемещения позиции прокрутки, что я делаю, получаю ли я текущую позицию и добавляю или вычитаю точное количество пикселей, и полоса прокрутки в моей форме отлично перемещается так, как я хочу , но содержимое в элементе управления остается неизменным. В чем здесь проблема?

1 Ответ

0 голосов
/ 09 марта 2010

Я нашел правильный вызов API! :)

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

до того, как я просто использовал SetScrollPos, но это в сочетании с PostMessageA прекрасно работает

...