2016-05-19 347 views
1

我們的客戶有特定的鼠標 - 他們有2個卷軸。 在'mainScroll_click'上,他希望我們觸發事件A和'scroll2_click'事件B.雙鼠標滾動事件

是否有可能使用c#?或者我應該尋求鼠標驅動程序的幫助?

對於中間的按鈕我一直使用:

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

,但我不能找到有關MiddleButton2

任何信息
+0

我會檢查兩輪產品的驅動程序文檔。由於這是非常定製和不尋常的,他們甚至可能擁有一個SDK,您可以將其與您的程序結合使用。 – Harvey

+0

通常將擴展函數軟鍵映射到鍵,例如PgUp/PgDwn或箭頭。或XButtons。我要麼推動物理訪問所述設備,要麼創建一些測試應用程序來記錄事件。 – PTwr

+1

XButton1和XButton2對應於ThumbButtons(正常鼠標左側的那些按鈕),而不是第二輪 – Pieczarr

回答

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

,如果他們沒有得到足夠好的符合你可能需要以低得多的水平,以處理它們的標準小鼠接口在這種情況下nitrogenycs回覆Mouse Wheel Event (C#)展示瞭如何攔截和處理原始事件

+0

鼠標從客戶端到達,它似乎沒有拇指按鈕,並在第二輪單擊時觸發X2按鈕。 – Pieczarr