如何操作滚动条上的LargeChange和SmallChange工作

时间:2008-09-25 19:00:47

标签: c# scrollbar

我在C#应用程序的单个窗口中有许多面板,我创建了2个滚动条,一个用于水平,一个用于垂直。这就是我目前所拥有的:

picture with 2 scroolbars http://www.simnet.is/elinnils52/scrollbar.jpg

我有1个变量,这是所有项目的总高度&需要。 这是关于滚动更改的代码:

for (int i = 0; i < this._splitMainView.Panel2.Controls.Count; i++)
{
    this._splitMainView.Panel2.Controls[i].Location = new Point(
        3 - _scrollBarX.Value, 
        3 + (132 + 6) * (i - 2) - _scrollBarY.Value);
    this._splitMainView.Panel2.Controls[i].Refresh();
}

滚动条最大值是所有容器高度的总量,中间的空间和额外的几个像素。

从图中可以看出,它看起来并不好看。即使在这种情况下最大值约为50-100像素,它仍然看起来像是一千页长。当我更改SmallChange和LargeChange时,滚动条本身会延长但不会达到最大像素。它几乎可以在最后得到(取决于SmallChange和LargeChange值)并留下5 - 29 px左右。众所周知,看到一半并不好。

有谁知道如何克服这个障碍或更好的实施方法?

2 个答案:

答案 0 :(得分:1)

为什么不让滚动条的最大值溢出(可见区域高度 - 面板高度)?然后只需将面板顶部设置为滚动条的值* -1。

答案 1 :(得分:0)

有没有理由不使用AutoScroll属性?