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

时间:2010-04-26 15:15:58

标签: c# windows forms panel autoscroll

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

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

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

1 个答案:

答案 0 :(得分:8)

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

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

if (e.ScrollOrientation == ScrollOrientation.VerticalScroll) {
  panel1.VerticalScroll.Value = e.NewValue;
}

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

当然,类似于横向的代码。

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