我需要知道如何在MouseWheel事件上确定滚动是向前还是向后(不是垂直或水平)。
panel1.MouseWheel += ZoomIn
public void ZoomIn(object sender, EventArgs e)
{
// Need to know whether the wheel is scrolled forwards or backwards
}
答案 0 :(得分:6)
而不是EventArgs
使用公开Delta
属性的MouseEventArgs
。
向下滚动为负,向上滚动为正。
panel1.MouseWheel += ZoomIn;
public void ZoomIn(object sender, MouseEventArgs e)
{
if(e.Delta > 0)
{
// The user scrolled up.
}
else
{
// The user scrolled down.
}
}
答案 1 :(得分:3)
每MSDN:
处理MouseWheel事件时,遵循与鼠标滚轮关联的用户界面(UI)标准非常重要。 MouseEventArgs.Delta属性值指示鼠标滚轮的移动量。当累积增量为正或负120时,UI应滚动.UI应滚动SystemInformation.MouseWheelScrollLines属性为每个达到的增量值返回的逻辑行数。您还可以以小于120个单位的增量更平滑地滚动,但是比率应该保持不变,即SystemInformation.MouseWheelScrollLines线条每120个轮子移动单位滚动。
因此,您希望将处理程序中e
的类型更改为MouseEventArgs
(或引入强制转换),然后使用其Delta
属性