双鼠标滚动事件

时间:2016-05-19 10:53:47

标签: c# winforms mousewheel

我们的客户有特定的鼠标 - 他们有2个卷轴。 在'mainScroll_click'上,他希望我们触发事件A并在'scroll2_click'事件B上。

是否可以使用c#?或者我应该在鼠标驱动程序中寻求帮助吗?

对于中间按钮,我一直使用:

if (e.MiddleButton) { MessageBox.Show("Middle!"); }

但我找不到有关MiddleButton2

的任何信息

1 个答案:

答案 0 :(得分:1)

没有middle2,因为默认鼠标被假定为2或3个按钮。

然而,带有额外特殊按钮的鼠标,如前后几乎与轮子一样长,

如果你看MouseButtons Enumeration,你会发现它有2个特殊按钮XButton1,XButton2,我希望制造商映射到其中一个,但这取决于鼠标的制造商

获取移动到鼠标事件所需的更多细节,而不仅仅是基本点击,例如MouseCLick,MouseUp,MouseDown

    private void panel1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) 
    {
        // Update the mouse path with the mouse information
        Point mouseDownLocation = new Point(e.X, e.Y);

        string eventString = null;
        switch (e.Button) {
            case MouseButtons.Left:
                eventString = "L";
                break;
            case MouseButtons.Right:
                eventString = "R";
                break;
            case MouseButtons.Middle:
                eventString = "M";
                break;
            case MouseButtons.XButton1:
                eventString = "X1";
                break;
            case MouseButtons.XButton2:
                eventString = "X2";
                break;
            case MouseButtons.None:
            default:
                break;
        }

如果他们已经足够好以符合标准鼠标界面,您可能需要在更低的水平处理它们,在这种情况下,氮气回复Mouse Wheel Event (C#)显示如何拦截和处理原始事件