Wie andere Erwähnung in den Kommentaren scheint Ihr Code richtig, aber wird nur auf einfache Form arbeiten. Um das zu überwinden, können Sie an Veranstaltungen teilnehmen.
Private Sub Form_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseClick, Button1.MouseClick, Control1.MouseClick, AnyOtherControl.MouseClick
If e.Button = Windows.Forms.MouseButtons.Right Then
MsgBox("Right Mouse clicked.")
End If
End Sub
Bitte ersetzen Steuer Namen Sie Ihre Veranstaltung in diesem Code feuern auf möchten:
Handles MyBase.MouseClick, Button1.MouseClick, Control1.MouseClick, AnyOtherControl.MouseClick
Ich vermute, Sie eines Container-Steuerelemente verwenden, die meisten Ihrer Form füllen. Wenn Sie möchten, dass Ihre Veranstaltung mit ihnen zusammenarbeitet, müssen Sie sie zu Ihrer Veranstaltung hinzufügen.
Endlich gibt es auch eine Frage von DoubleClick
, die über Ereignis nicht feuern wird. Um alles zu überwinden, müssen Sie MouseClick
zu MouseDown
ändern Das wird funktionieren, wenn die Maus über einen offenen Teil des Formulars ist (also nicht über ein Steuerelement, Panel oder was auch immer). – Plutonix
Wenn Sie einen Unterbrechungspunkt auf der Linie "If" platzieren, wird er dann getroffen? Vielleicht macht es es nicht innerhalb des 'If' Blocks, wenn Sie denken, dass es sollte. Oder vielleicht ist das Ereignis nicht korrekt an das Formular gebunden. –
Zusätzlich zu Plutonix's Kommentar: Sie müssen einen globalen Haken verwenden, um Mausklicks außerhalb Ihres Formulars zu erfassen. [Hier ist eine VB.NET-Frage] (http://stackoverflow.com/questions/2080617/intercepting-mouse-events-using-a-global-hook-stop-an-action-from-happening) mit einigen Maus-Hook-Code . –