c# - AutoScrollPosition 在将其设置为点位置后不报告正确的值

标签 c# user-controls scroll

我有一个用户控件,它是可滚动控件,我想更改它的 AutoScrollPosition(仅 X 值)。

我是这样做的:

int newScrollX = myFunction();
Point p = new Point(newScrollX, this.AutoScrollPosition.Y);
this.AutoScrollPosition = p;

newScrollX 得到正确的值,p 得到正确的点,但是在AutoScrollPosition 设置行之后,AutoScrollPosition 是(0,0)。

问题是什么?

谢谢

最佳答案

AutoScrollPosition 相当麻烦。

这样做通常会得到负值:

Point p = this.AutoScrollPosition;

但是在设置滚动位置时,您必须使用正值...因此要恢复完全相同的滚动位置,您必须反转负数:

this.AutoScrollPosition = new Point(-p.X, -p.Y)

否则,AutoScrollPosition 将为观察到的 0,0。

关于c# - AutoScrollPosition 在将其设置为点位置后不报告正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13053962/

相关文章:

asp.net-mvc - 什么是在 ASP.NET MVC 3 中使用逻辑构建 subview 的好方法

c# - 使用 asp.net usercontrols 按属性值对列表进行排序

ios - ScrollView 中的按钮被禁用 - iOS Swift

c# - 如何显示当前登录网站的用户

c# - 读取解决方案数据文件 ASP.Net Core

ASP.Net:动态添加到占位符的用户控件无法检索值

ios - UICollectionView 滚动错误

jquery - 在 Bootstrap 选项卡之间切换时保持滚动位置

Javascript 将列表发送到 asmx 服务

c# - 使用 Mono.Cecil 在 C# 程序集中注入(inject)方法