【发布时间】:2015-12-16 09:11:51
【问题描述】:
我在 winform 中有一个面板。我想为面板捕获滚动和鼠标滚轮事件。对于这两种情况,我都想检查滚动条的位置。
当滚动条位于底部时(滚动结束时...),控件应该触发该事件。
我已经为 Panel.Scroll 这样做了:
private void Panel1_Scroll(object sender, ScrollEventArgs e)
{
if (e.NewValue == Panel1.VerticalScroll.Maximum - Panel1.VerticalScroll.LargeChange+1)
{
//do some operation
}
}
但是对于 MouseEventArgs 没有值 (e.newvalue) 来指示滚动条的位置。
如何从鼠标滚轮事件中获取滚动条位置?
另外根据我的要求,两个事件调用都有相同的逻辑实现,所以我想写一次逻辑。
我怎样才能做到这一点?
【问题讨论】:
-
你当然不能。如果 MouseWheel 事件实际滚动面板,它将触发 Scroll 事件,因此无需帮助。该面板必须包含一个或多个可以获取焦点的控件,或者您必须创建一个可以获取焦点的panel control。请注意由于拇指大小导致滚动条的片状行为,您必须使用 >= 而不是 ==。
标签: c# winforms events panel mousewheel