Entwickler-Ecke
C# - Die Sprache - OnMouseMove - Problematik
Daffke - Mi 18.04.07 13:25
Titel: OnMouseMove - Problematik
Hallo!
Ich bin in Sachen "C#-Programmierung" ein absoluter Neuling. Jetzt habe ich mich mal mit der Maus beschäftigt ;-)
Ein kleines Fenster sollte mir die Position des Mauszeigers angeben:
C#-Quelltext
1: 2: 3: 4:
| protected override void OnMouseMove(System.Windows.Forms.MouseEventArgs e) { this.label1.Text = "Position: " + e.X + "/" + e.Y; } |
Das funktioniert auch ganz prima. Aber sobald ich mit dem Mauspfeil das Fenster verlasse, wird die aktuelle Position nicht mehr angezeigt.
Meine Frage an Euch: Wie kann ich die Position des Mauszeigers anzeigen lassen, (auch) wenn ich das Fenster verlasse? Bezieht sich OnMouseMove immer nur auf das aktive Fenster?
Wäre super, wenn ihr einem Anfänger weiterhelfen könntet...
Viele Grüße,
Daffke
Moderiert von
UGrohne: Beitragsformatierung überarbeitet (Es muss nicht alles fett sein!).
UGrohne - Mi 18.04.07 13:33
Ja, OnMouseMove wird nur für das definierte Objekt aufgerufen. Es gibt beispielsweise dieses Ereignis auch für ein Panel. Und die Angaben beziehen sich immer relativ zum Objekt, also 0/0 ist immer die linke obere Ecke des Objekts, z.B. des Panels.
Was Du machen willst, musst Du selbst abfragen, dafür bekommt Deine Anwendung keine Message von Windows, jedenfalls solange sich der Mauszeiger nicht über Deiner Form befindet.
Du kannst z.B. einen Timer nehmen und dort regelmäßig die aktuelle Position des Cursors herausfinden:
C#-Quelltext
1:
| label1.Text = Cursor.Position.X.ToString() + " / " + Cursor.Position.Y.ToString(); |
Kha - Mi 18.04.07 17:27
Auf CodeProject.com gibt es eine MouseHook-Klasse für .Net, aber als Neuling fährst du mit einem Timer sicherlich besser. Die minimale Zeitverzögerung sollte nicht sichtbar sein.
Daffke - Fr 27.04.07 14:34
Titel: Schade.
Schade. Dann kann man da also nix machen :-(
Trotzdem: Vielen Dank für die schnelle Hilfe! :-)
Viele Grüße,
Daffke
UGrohne - Sa 28.04.07 08:59
Titel: Re: Schade.
Daffke hat folgendes geschrieben: |
Schade. Dann kann man da also nix machen :-(
Trotzdem: Vielen Dank für die schnelle Hilfe! :-) |
Wir haben Dir doch 2 Lösungsmöglichkeiten aufgezeit? :gruebel:
Daffke - Sa 28.04.07 09:19
Nee, klar. Der Tipp war schon ganz gut. Ich hab' mich nur falsch ausgedrückt. Sorry.
Ich konnte es leider nicht so umsetzen, wie ich es erst dachte ...
Aber Eure Hilfe war schon 1A!
Danke nochmal! :-)
Gruß,
Daffke
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!