使用自动滚动进行平滑滚动

Mar*_*k T 3 c# forms windows panel autoscroll

我在Windows窗体上有一个Panel.Panel已启用自动滚动.滚动条按原样显示,滚动条通常按预期运行.

但只有在释放鼠标按钮时才会更新面板的内容.如何在滚动条移动时滚动内容.(我想复制大多数现代程序的滚动行为,如文字处理程序和Web浏览器......移动滚动条,内容也会立即滚动.)

我正在使用C#,Visual Studio 2008专业版和Windows XP专业版.

Mar*_*k T 8

我终于在网上找到了一个提示,它确实有效.

挂钩面板的滚动事件,并在事件处理程序中,放置如下代码:

if (e.ScrollOrientation == ScrollOrientation.VerticalScroll) {
  panel1.VerticalScroll.Value = e.NewValue;
}
Run Code Online (Sandbox Code Playgroud)

其中e是传递给事件处理程序的ScrollEventArgs对象.

当然,类似于水平代码.

我不知道为什么这不是自动的,或者为什么没有至少一个属性来实现它.