正在保存滚动条状态/位置
本文关键字:位置 状态 滚动条 保存 | 更新日期: 2023-09-27 17:58:37
我有一个面板,可以在其中动态添加自定义控件。如果控件超出面板边界,水平/垂直滚动条将自动显示(AutoScroll == true
),滚动条将通过以下代码跟随控件:
if(panelDiagram.VerticalScroll.Visible || panelDiagram.HorizontalScroll.Visible) {
panelDiagram.ScrollControlIntoView(tempNode);
}
这样,当移动tempNode时,滚动条将跟随它
当我再次从数据库加载所有内容时,有什么方法可以保持滚动条的状态吗?我尝试了很多类似ScrollControlIntoView(lastAddedControl)
的东西,但都不起作用。也许我必须关闭AutoScroll
,用我的手来管理一切?
Panel
是从ScrollableControl
派生而来的,它公开了一些您可能会发现有用的属性:
AutoScrollPosition
VerticalScroll
HorizontalScroll
看起来autoScrollPosition
就是你想要的;它是一个CCD_ 10实例,包含每个滚动条的当前X和Y滚动坐标。如果只进行垂直滚动,X
将为零。
这样保存:
public override void OnLoad(Object sender, EventArgs e) {
this.panel1.AutoScrollPosition = GetSavedScrollPoint();
}
public override void OnFormClosing(Object sender, EventArgs e) {
SavePointSomewhere( this.panel1.AutoScrollPosition );
}