无限垂直滚动

时间:2011-06-29 16:52:50

标签: c# winforms scrollbar

我有一个WinForms应用程序和一个Panel Control。面板控件具有用于垂直滚动的VScrollBar控件。一切正常,除了现在我的VScrollBar最大值设置为100.问题是,我需要最大属性大约40亿,但是,因为最大只是一个整数,我不能将它设置为正确的值。所以,我的问题是,我该如何解决这个问题呢?我知道有文本编辑器和文件查看器声称要查看超过4个数据的数据,那么应用程序中的滚动条如何工作呢?

3 个答案:

答案 0 :(得分:2)

好吧,您可以将Maximum设置为int.MaxValue并将检索到的值缩放到实际最大值。这应该足够精确,以避免加载太多数据。

答案 1 :(得分:2)

滚动条是一个GUI控件。天生地,它可以显示的步数限制为屏幕上的垂直像素数。因此,您可以考虑将最大值设置为高于该值的任何值,以方便开发人员使数学运算更容易。

应用程序如何处理滚动条?理论上,您需要先解析文件,找出文件中有多少行,并将其用作逻辑最大值。实际上,在打开文件时读取4 GB的数据会导致性能下降,因此无法正常工作。

如果我实现这个,我会将滚动条最大值设置为一个较大的值,比如10,000。使用滚动条时,滚动条值除以10,000得到百分比,编辑器显示文件的该部分。

在滚动这么多行方面不要考虑事情。相反,可以将其视为跳转到文件的百分比偏移量,在那里读取数据并显示它。

答案 2 :(得分:0)

您使用百分比。无需将其设置为与行数相同。