2016-05-19 3 views
1

Наш клиент имеет конкретные мыши - у них есть 2 свитка. На «mainScroll_click» он хочет, чтобы мы вызывали событие A и событие «scroll2_click». B.События с двумя прокрутками мыши

Возможно ли использование C#? Или я должен искать помощь в драйверах мыши?

Для средней кнопки я всегда использовал:

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

, но я не могу найти какую-либо информацию о MiddleButton2

+0

Я бы проверьте документацию водителя на 2-колесный продукт. Поскольку это вполне навязчивое и необычное, у них может даже быть 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