今天在使用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