2016-04-24 7 views
0

Meine Codes:VB: Mausklick funktionieren nicht

Me.KeyPreview = True 
... 

Private Sub Form_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseClick 
    If e.Button = Windows.Forms.MouseButtons.Right Then 
     MsgBox("Right Mouse clicked.") 
    End If 
End Sub 

Try Maus zu erfassen rechts klicken, aber nicht funktionieren.

Alle Vorschläge willkommen. Danke

+2

ä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

+0

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. –

+0

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 . –

Antwort

0

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. enter image description here

Endlich gibt es auch eine Frage von DoubleClick, die über Ereignis nicht feuern wird. Um alles zu überwinden, müssen Sie MouseClick zu MouseDown