Entwickler-Ecke

Multimedia / Grafik - MouseMove für RecTangle


Gschaftlhuaba - Di 24.02.09 00:36
Titel: MouseMove für RecTangle
Hallo,

ich beschäftige mich nun seit fast einem dreiviertel Jahr mit C# und komme nun dran zu zeichnen (z. B. Rectangles).

Ich möchte erreichen, dass ich für Rectangles auch Ereignisse erhalte. Ich mache mal ein Beispiel:

1. Gegeben ist eine leere Form
2. darauf Platziere ich einen Button im Formularentwurf
3. Außerdem zeichne ich bspw. im Pain-Ereignis ein Rectangle

Wenn ich nun das Programm starte und mit der Maus über den Buttn fahre, wird ja das MouseMove-Ereignis ausgelöst und ich könnte darauf reagieren. Mache ich das bei einer Rectangle passiert nix, weil es eine Struktur ist.

Es scheint also in Windows irgend etwas zu geben, welches überprüft, welches Objekt/Stuerelement sich unter der Maus befindet und dorthin werden dann Mausereignisse geschickt.

Wie bekomme ich das für Rectangles hin? Ich möchte nicht selbst überprüfen müssen, wo sich die Maus gerade befindet und ob sie vielleicht gerade zufällig innerhalb der Rectangle ist. Das soll genauso funktionieren, wie bei einem Button auch.

Geht das überhaupt über eine normale Rectangle oder wäre dazu ein benutzerdefiniertes Steuerelement notwendig, welches von Control erbt?

Danke


Console.Beep() - Di 24.02.09 09:48

Hallo und :welcome:

Eigendlich brauchst du das doch nich so kompliziert machen. Wenn ich es richtig erfasst habe willst du in einem bestimmten Bereich was zeichnen
Zitat:
Außerdem zeichne ich bspw. im Pain-Ereignis ein Rectangle
sowie das mousemove-Event darüber nutzen.

Es wär einfacher wenn du ein Panel oder eine Picturbox nimmst, da hast du deine Events die du brauchst und du zeichnest nur in dem Panel oder der Picturebox.

Gruß Beep!!!


Gschaftlhuaba - Di 24.02.09 15:02

Hallo Beep, (übrigens toller Forums-Name :-) )

danke schon mal, dass klingt gar nicht mal schlecht mit dem Panel, das muss ich mal ausprobieren.
Denn was ich zur Laufzeit möchte ist, über einem Image, welches z. B. in einer PictureBox dargestellt wird, mehrere Felder aufziehen. Diese sollen dann in Größe und Position mit der Maus veränderbar sein.

Ich werd's mal testen und berichten.

Danke.
Gschaftlhuaba


Kha - Di 24.02.09 19:06

user profile iconGschaftlhuaba hat folgendes geschrieben Zum zitierten Posting springen:
Denn was ich zur Laufzeit möchte ist, über einem Image, welches z. B. in einer PictureBox dargestellt wird, mehrere Felder aufziehen. Diese sollen dann in Größe und Position mit der Maus veränderbar sein.
Da wirst du mit Windows Forms leider recht schnell Probleme bekommen. Transparente Panels sind zwar mit ein paar Tricks [http://www.bobpowell.net/transcontrols.htm] möglich, aber generell ist die API für solche Spielereien einfach nicht ausgelegt, das beherrscht erst WPF vollkommen.
Ansonsten musst du eben auf eigene Controls für die Felder verzichten und die Events der PictureBox von Hand an das jeweilige Feld weiterreichen.