Autor Beitrag
Gschaftlhuaba
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 24.02.09 00:36 
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()
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 43

Win XP, Ubuntu 8.10
C# (VS 2008 Exp) C++ (VS 2008 Exp)
BeitragVerfasst: 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!!!

_________________
Ihr zweifelt an der Existenz der If-Schleife??? Ihr müsst nur fest daran glauben!!!
Gschaftlhuaba Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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 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.

_________________
>λ=