1

c# Bereich in Picturebox erkennen

Frage von coffee12345 coffee12345

Hallo zusammen.

Ich habe einmal versucht, ein Bild in eine PictureBox zu stecken und einen Interupt auszulösen, wenn man mit der Maus darüber fährt. Dabei habe ich mich für eine recht umständliche Methode entschieden: Ich nehme das Bild in GIMP und male die Stellen für den Interupt in einer Farbe an, die sonst nicht in dem Bild vorkommt, z.B Grün(0 255 0). Dann habe ich ein Programm geschrieben, welches die Pixel einzeln durchgeht und wenn es auf einem Pixel mit dem Wert 0 255 0 trifft, die Koordinaten in einer Textdatei speichert. Soweit so gut. Doch, wenn ich jetzt mit der Maus über den Bereich fahre, dann löst der interupt erst kurz nach dem Hotspot aus, wenn ich von oben komme und wenn ich von unten komme, dann kurz vor dem Hotspot. Also habe ich C# die Mausbewegung nachzeichnen lassen, in Form einer roten Linie. Und da habe ich dann gemerkt, dass sich die y Koordinate immer minimal langsamer bewegt, als die Maus. Also wird die rote Linie exakt an der Maus gezeichnet, wenn sie sich am oberen Rand befindet und je weiter ich nach unten gehe, desto mehr Abstand bekommt die Linie von dem Mauszeiger, bis sie c.a 640 Pixel weiter unten etwa einen Abstand von 20 Pixeln zum Zeiger hat.

Woran könnte das liegen? Ich zerbrech mir jetzt schon seit zwei Tagen den Kopf darüber. Danke schon im voraus für Antworten.

Fragen zu gleichen Themen finden

Antworten (1)

  • 0
    Antwort von DataJockey DataJockey

    hi,

    wenn du das Event Canvas.MouseMove abfängst bekommst du im Eventhandler die Eventarguments als MouseEventArgs. Damit kannst du die aktuelle Mausposition mit e.X und e.Y abfragen. Überprüfe die mal indem du dir die aktuelle Position in die Statusbar schreibst.

    gruss, dj

    Kommentar von coffee12345 coffee12345

    Ich mache das ganze nicht in einer Canvas, sondern in einer Pictuebox. Da ist ein Unterschied. Ich habe die Mausposition aber mal anzeigen lassen und festgestellt, dass sie bei logischerweise X = x, Y = 0 anfängt, aber bei X = x, Y = 451 aufhört, obwohl das Bild 480 Pixel hoch ist.

Diese Frage

Verwandte Fragen

Noch nicht den richtigen Rat gefunden?

Einfach und schnell viele hilfreiche Ratschläge von Deutschlands aktivster Ratgeber-Community erhalten!

Einfach und schnell einen Tipp erstellen und Ihren guten Rat mit anderen teilen!

Einfach und schnell ein Video hochladen und anschaulichen Rat an alle geben!

Die unter gutefrage.net angebotenen Dienste und Ratgeber Inhalte werden nicht geprüft. Die Richtigkeit der Inhalte wird nicht gewährleistet. Rechtliche Hinweise finden Sie hier.