0
[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);

所以这些是我用来移动滚动位置的外部变量,我在做什么,是我获取当前位置,并添加或减去确切数量的像素,并且我的表单上的滚动条完全按照我想要的方式移动,但是控件中的内容保持静止。这里有什么问题?

4

1 回答 1

0

我找到了正确的 API 调用!:)

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

在我只是使用 SetScrollPos 之前,但这与 PostMessageA 完美结合

于 2010-03-09T01:06:38.577 回答