Anzeige

Dynamisches Rectangle und Mouse Hover Event


#1
Hi,

ich habe eine Frage, die ihr mir hoffentlich schnell beantworten könnt. Also: Ich möchte über eine Liste (ListOf) dynamische Rechtecke erstellen, indem vorher der Benutzer mit der Maus Rechtecke auf dem Formular zeichnet. Soweit funktioniert das Programm schon.

Wenn ich nun mit der Maus über eines der (beliebig vielen) gezeichneten Rectangles wandere, möchte ich, dass ich das Rectangle verschieben kann.

Mein Problem: Ich weiß das ich mit Contains heraus finden kann ob ich mich in einem Rectangle befinde, jedoch nur dann, wenn ich ein statisches Rechteck habe. Da ich eine Liste von vielen dynamischen Rechtecken habe, muss ich also herausfinden ob ich mich mit dem Mauszeiger in irgendeinem Rechteck der Liste befinde, dieses Rechteck dann laden und danach dann verändern.

Ich hoffe das war verständlich. Wie kann ich das machen? Hat da jemand eine Idee?

Vielen Dank!
 

saftmeister

Nutze den Saft!
Premium-User
#3
Ich hab zwar keine Erfahrung mit .Net und ListOf, aber wenn die Rechtecke Gui-Objekte sind und von einem Gui-Basis-Typ erben, gibt es vielleicht die Möglichkeit, ein Callback auf eine OnEnter oder OnMouseOver zu implementieren?
 

Spyke

Capoeirista
Premium-User
#4
Rectangle ist ein struct in C#.

Bei ListOf vermute ich jetzt mal das die Sprache VB.Net ist und die generische Liste (in C# List<T>) gemeint ist.
 

ksk

Erfahrenes Mitglied
#6
Eine Möglichkeit wäre in der OnPaint-Methode die Liste der Rects durchzulaufen und prüfen ob die Maus sich innerhalb eines Rechtecks befindet.
Danach mit MouseDown (Startpos.), MouseUp (Endpos.) und mit MouseMove die aktuelle Pos. übergeben und in der Paint Methode erneut zeichnen. Die Mouse-Events nicht vom Rectangle sonder der Form.
 
Anzeige
Anzeige