今天在使用ScrollBar实现滚动功能时,发现鼠标无法拖动滚动条至最大值。

在网上搜索了一下,发现2003年就有人发现了这个问题,上面居然还有人说一年前就发现了,也就是说2002年就发现了这个问题。

这是搜索的问题页面:http://topic.csdn.net/t/20030605/09/1878069.html

 

很奇怪的问题,难到又是这个控件的BUG,不可能那么多年还存在吧。

于是在MSDN上搜索到如下页面:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.scrollbar.maximum

ScrollBar.Maximum 属性

注意下面这段话:

最大值只能以编程方式达到滚动条的最大值不能通过运行时的用户交互而达到。 通过用户交互可达到的最大值为 1 加上 Maximum 属性值与 LargeChange 属性值的差。 如有必要,可以将 Maximum 属性设置为对象大小减 1,以抵消上述计算方法中的 1。

 

解决的办法在上面的最后已经说了:

我的修改后代码如下:

scrollBar.Maximum = max -1 + scrollBar.LargeChange;

 

--End

posted on 2012-01-18 14:53  Louis.Lu.Sz  阅读(1522)  评论(0编辑  收藏  举报