双鼠标滚动事件

Dual mouse scroll events

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

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

我一直使用的中间按钮:

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

但是我找不到任何关于 MiddleButton2 的信息

没有 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;
        }

如果它们不够好以符合标准鼠标接口,您可能需要在更低的级别上处理它们,在这种情况下,nitrogenycs 对 Mouse Wheel Event (C#) 的回复显示了如何拦截和处理原始数据事件