2015-10-09 2 views
0

Эта функция распознает только левую кнопку мыши. Как я могу заставить эту программу распознать правую кнопку мыши, чтобы щелкнуть эту кнопку правой кнопкой мыши ?.Используйте мышь Левая и правая кнопки в C# winforms

private void button2_Click(object sender, EventArgs e) 
     { 
      MouseEventArgs me = (MouseEventArgs)e; 
      if (buttonwasclicked==false) 
      { 
       DrawLinesOnBitmap(button2.BackgroundImage); 
       button2.BackgroundImage= ToGrayscale(button2.BackgroundImage); 
       buttonwasclicked = true; 
      } 

      else { 
       button2.BackgroundImageLayout = ImageLayout.Stretch; 
       button2.BackgroundImage = Image.FromFile("C:\\Users\\rati\\Desktop\\ks.png"); 
       buttonwasclicked = false; 
      } 
      if (me.Button == MouseButtons.Left) 
      { 
       mysum += md; 
       if (buttonwasclicked == true) md *= -1; else md *= -1; 
       label1.Text = mysum.ToString(); 
      } 
      if (me.Button == MouseButtons.Right) { 
       enemysum += ed; 
       if (buttonwasclicked == true) ed *= -1; else ed *= -1; 
       label2.Text = enemysum.ToString(); 
      } 
     } 
+0

проверить это ..http: //stackoverflow.com/questions/3209217/detect-both-left-and-right-mouse-click-at в то же самое время вам нужно понять, что кнопка нажимается, вероятно, при срабатывании при использовании левой кнопки мыши. Поэтому вам нужно следовать ответу по ссылке, которую я разместил – MethodMan

+0

Вместо этого используйте событие MouseClick, test e.Button –

+0

что будет проще использовать событие PreviewMouseDown? – cscmh99

ответ

0

Используйте событие «MouseClick», а не событие «Click», «Click» не распознает щелчки правой кнопкой мыши.

Если вы используете Visual Studio, просто зайдите в конструктор, нажмите кнопку, перейдите к свойствам и щелкните значок молнии. Затем вы найдете «MouseClick» и дважды щелкните по нему.

+0

MouseClick Не распознает и правые клики. – Elipzer

+0

@Elipzer Это так, я просто проверил^_ ^. – Rariolu

+0

Это не в моем тестовом примере :( – Elipzer

0

Вы должны использовать событие MouseDown. Он имеет параметр MouseEventArgs, который содержит Button. Таким образом, вы можете проверить, какая кнопка была нажата.

+0

'MouseDown' - это не то же самое, что Click. Он вызывается, когда пользователь нажимает кнопку мыши, а не когда он появляется то же положение lick 'MouseClick' – Elipzer

+0

Мне нужно, чтобы эта кнопка была нажата правой кнопкой мыши. –

+0

@RatiSharabidze Вы должны использовать' if (e.Button == MouseButtons.Right) 'в событии MouseDown. –

0

Чтобы интерпретировать щелчок, вам необходимо использовать действия MouseDown и MouseUp.

Ваш список действий должен выглядеть следующим образом:

Control Properties

Затем интерпретировать действия следующим образом:

int prevMouseX; 
int prevMouseY; 

private void mouseDown(object sender, MouseEventArgs e) 
{ 
    prevMouseX = e.X; 
    prevMouseY = e.Y; 
} 

private void mouseUp(object sender, MouseEventArgs e) 
{ 
    if (prevMouseX == e.X && prevMouseY == e.Y) 
     mouseClick(sender, e); 
} 

private void mouseClick(object sender, MouseEventArgs e) 
{ 
    //Do Stuff 
} 

Это должно работать для вас!

Мой код интерпретирует щелчок, когда мышь идет вниз и вверх в том же положении.

+0

Мне нужна эта кнопка была нажата правой кнопкой мыши, а не флажком –

0

Попробуйте это, если вы хотите что-то сделать на событие щелчка правой кнопкой мыши.

=> Создать один контекстное меню и не создает какой-либо параметр в нем. (Drag & падение ContextMenuStrip из Toolbox)

=> Назначить что контекстное меню для этой кнопки из ContextMenuStrip собственности Button в панели свойств.

Написать следующий код на событие открытия в контекстном меню

private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) 
    { 
     MessageBox.Show("hii"); 
     e.Cancel=true; 
    } 
+0

Мне нужно, чтобы кнопка была нажата правой кнопкой мыши нажмите –

+0

, очевидно, что код, написанный в этом случае, будет выполнен щелчком мыши только правой кнопкой мыши. –

+0

Мне удастся щелкнуть правой кнопкой, он пишет «справа», но кнопка не может быть нажата, чтобы она вступила в силу (я имею в виду, что кнопка не нажата, когда я нажимаю правую кнопку мыши) –

Смежные вопросы