Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无限垂直滚动_C#_Winforms_Scrollbar - Fatal编程技术网

C# 无限垂直滚动

C# 无限垂直滚动,c#,winforms,scrollbar,C#,Winforms,Scrollbar,我有一个WinForms应用程序和一个面板控件。panel控件具有用于垂直滚动的VScrollBar控件。一切正常,但现在我的VScrollBar最大值设置为100。问题是,我需要最大属性大约为40亿,但是,因为最大值只是一个整数,所以我无法将其设置为正确的值。所以,我的问题是,我该如何解决这个问题?我知道有些文本编辑器和文件查看器声称可以查看超过4 Gig的数据,那么在这样的应用程序中滚动条是如何工作的呢?您使用百分比。无需将其设置为与行数相同的值。好的,您只需将最大值设置为int.MaxVa

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

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

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

滚动条是GUI控件。与生俱来,它可以显示的步数仅限于屏幕上的垂直像素数。因此,您可以考虑将最大值设置在上面的任何值上,以简化开发人员的操作,使数学变得更容易。p> 应用程序如何处理滚动条?理论上,您应该首先解析文件,找出文件中有多少行,并将其用作逻辑最大值。事实上,打开文件时读取4GB的数据会降低性能,因此不起作用

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


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

这是一个好主意,除非在我的Scroll处理程序中,我得到ScrollEventArgs,它有一个名为NewValue的属性,它是一个int。因此,如果它返回给我58,例如,意味着58%,我如何知道向下滚动的距离?58%是一个大的数据块,当你谈论总共4个游戏。如果你把最大值设为In Max Valm和Min最小到In .MnValuy,你应该非常接近。也要考虑到,除非你每行有1字节的数据,否则你将有少于40亿行,甚至4个数据。