Maus-Bewegung erkennen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Maus-Bewegung erkennen

    Hallo, kurze Frage, die mir aber schon seit einer Weile meine Geduld raubt.:
    Habe einen Mediaplayper gemacht, nun möchte ich dass wie in anderen Mediaplayern (VLC,WMP,...) meine 2 Panels bei einer Bewegung der Maus angezeigt werden und nach ca. 5 Sekunden ohne Mausbewegung ausgeblendet werden. Das Ein-und Ausblenden ist ja kein Problem aber wie ermittelt man die Mausbewegung? Hoffe Ihr wisst was ich meine. Danke im Vorraus! :)

    ErfinderDesRades schrieb:

    musste halt mittm Timer alle 300ms nachgucken,
    Wenn es außerhalb der Form ist, dann ja. Andernfalls hat eigentlich jedes Control passende MouseEvents.

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub ThisMouseMove(sender As Object, e As MouseEventArgs) Handles Panel1.MouseMove, Me.MouseMove
    4. Me.Text = "Move (" & New Random().Next().ToString() & ")"
    5. End Sub
    6. End Class
    Noch eine kleine Alternative zu Timern welche hier zugegebener Maßen vll. etwas overhead ist. Du kannst LowLevelMouse-Hooks verwenden. Dort wird dir auch mitgeteilt, dass sich die Mouse bewegt. Aber Achtung: In dem Hook-Thread welcher das Callback aufruft, solltest du nicht irgend eine Musik oder etwas starten. Das dauert zulange. A) Hängt, dann die Mouse und b) Wird dein Callback aus der Queue gekickt wenn es eine gewisse Zeit überschreitet.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    @Z5000:: Sicher nicht optimal, dafür einfach und funktional:
    5 Sekunden

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    2. Timer1.Interval = 5000
    3. End Sub
    4. Private Sub Form1_MouseMove(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
    5. Timer1.Stop()
    6. Timer1.Start()
    7. End Sub
    8. Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    9. Timer1.Stop()
    10. MessageBox.Show("5 Sekunden sind rum")
    11. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!