无限垂直滚动
本文关键字:滚动 垂直 无限 | 更新日期: 2023-09-27 18:00:37
我有一个WinForms应用程序和一个Panel控件。面板控件具有用于垂直滚动的VScrollBar控件。一切都很好,只是现在我的VScrollBar最大值设置为100。问题是,我需要Maximum属性大约为40亿,但是,由于Maximum只是一个整数,我无法将其设置为正确的值。所以,我的问题是,我该如何解决这个问题?我知道有些文本编辑器和文件查看器声称可以查看超过4 GB的数据,那么像这样的应用程序中的滚动条是如何工作的呢?
滚动条是一个GUI控件。自然而然,它可以显示的步数限制在屏幕上的垂直像素数。因此,为了方便开发人员,您可以考虑将最大值设置为任何高于该值的值,以使计算更容易。
应用程序如何处理滚动条?理论上,您应该首先解析文件,找出文件中有多少行,并将其用作逻辑最大值。事实上,在打开文件时读取4GB的数据会影响性能,所以这是行不通的。
如果我实现了这一点,我会将滚动条的最大值设置为一个大值,比如10000。当使用滚动条时,滚动条值除以10000得到一个百分比,编辑器显示文件的该部分。
不要用向下滚动那么多行来思考问题。相反,可以将其视为跳转到文件的百分比偏移量,读取那里的数据并显示出来。
好吧,您可以将Maximum设置为int.MaxValue,并将检索到的值缩放到实际的最大值。这应该是足够的精度,以避免加载过多的数据。
您使用百分比。没有必要将其设置为与行数相同。