重绘面板

3 c# scroll panel winforms

我的问题是我在面板中有一个面板.在里面,我将AutoScroll属性设置为true.当我打开一个新窗口时,这个面板滚动开始.

我这样做,我在打开新窗口之前保存位置,然后在关闭它之后设置它.它有效,但它跳到开头然后回到我的位置.

Fre*_*örk 5

AutoScrollPosition属性有点搞笑.当您读取它时,它将返回当前的滚动偏移量,但是当您指定它时,您将需要反转这些值:

private static Point GetAutoScrollPosition(Panel panel)
{
    return panel.AutoScrollPosition;
}

private static void SetAutoScrollPosition(Panel panel, Point position)
{
    panel.AutoScrollPosition = new Point(-position.X, -position.Y);
}
Run Code Online (Sandbox Code Playgroud)

现在您可以检索当前位置并将其设置为:

Point pos = GetAutoScrollPosition(myPanel);
SetAutoScrollPosition(myPanel, pos);
Run Code Online (Sandbox Code Playgroud)