2012-02-26 5 views
12

Próbuję zrobić grę typu trałowiec w visual C# i chcę mieć różne rzeczy, kiedy klikam prawym przyciskiem myszy i lewym przyciskiem myszy, jak mam to zrobić?Visual C# Form prawy przycisk myszy

Próbowałem ten kod, ale to tylko rejestruje lewego kliknięcia:

private void button1_MouseClick(object sender, MouseEventArgs e) 
    { 
     if (e.Button == System.Windows.Forms.MouseButtons.Left) 
     { 
      MessageBox.Show("Left"); 
     } 
     if (e.Button == System.Windows.Forms.MouseButtons.Right) 
     { 
      MessageBox.Show("Right"); 
     } 

    } 
+0

Masz już poprawną odpowiedź, więc nie trzeba jej przepisywać. Napisałem swój własny trałowiec kilka tygodni temu i zadałem pytanie [SO] (http://stackoverflow.com/questions/8485779/capture-simultaneous-right-and-left-click-event-triggers-on-label), może ci pomóc. W ten sposób utworzysz "kliknij oba przyciski myszy w tym samym czasie na numerze, aby odsłonić wszystkie zakryte skrzynki otaczające to". Jeśli już wiesz, jak to zrobić, po prostu mnie zignoruj ​​:) –

+0

Fajnie, może ci się przydać – SpencerJL

Odpowiedz

8

Będziesz musiał użyć zdarzenia zamiast zdarzenia ClickMouseUp lub MouseDown uchwycić prawym przyciskiem myszy.

+0

Sprawdź również, czy 'eventArgs.button == MouseButtons.Right' –

1

Po prostu spróbuj z wydarzeniem button1_MouseDown zamiast button1_MouseClick.To rozwiąże twój problem.

private void button1_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (e.Button == MouseButtons.Left) 
     { 
      //do something 
     } 
     if (e.Button == MouseButtons.Right) 
     { 
      //do something 
     } 
    } 
0

Przycisk reaguje tylko na MouseButtons.Left nie dla MouseButton.Right a nawet na środku.

void Select(object sender, MouseEventArgs e) 
{ 
    /* var btn = sender as CardButton;*/ 

    if (e.Button == MouseButtons.Left) 
    { 
     if (this.Selected == false) 
     { 
      this.Selected = true; 
     } 
     else 
     { 
      this.Selected = false; 
     } 
    } 
    if (e.Button == MouseButtons.Right) 
    { 
     if (this.Selected == false) 
     { 
      this.Selected = true; 
     } 
     else 
     { 
      this.Selected = false; 
     } 
    } 

    Draw(); 
}