4.40版源码,找到SourceGrid/SourceGrid/Common/CustomScrollControl.cs 这个文件
定位 CustomScrollWheel() 方法,把if条件判断去掉。或者把rotationDelta的值做相应调整也行。
改后代码如下:
public virtual void CustomScrollWheel(int rotationDelta)
{
//if (rotationDelta >= 120 || rotationDelta <= -120)
//{
if (VScrollBarVisible)
{
Point current = CustomScrollPosition;
int newY = current.Y +
SystemInformation.MouseWheelScrollLines * VScrollBar.SmallChange * -Math.Sign(rotationDelta); //check that the value is between max and min
if (newY < )
newY = ;
if (newY > MaximumVScroll)
newY = MaximumVScroll; CustomScrollPosition = new Point(current.X, newY);
}
//}
}
SourceGrid为了避免过于频繁的调用滚动操作,加了这个判断,但没考虑到有些鼠标的MouseWheel一次滚动是小于这个值的。
搜不到有人记录过这个问题,随记在此,希望遇到同样问题的同学能搜到。