Hey,
ich zeichne Linien mit DrawLine und würde gerne, dass man die Enden der Linien mit der Maus verschieben (= bewegen) kann. So das der User selber wählen kann, ob die Linien senkrecht, vertikal oder diagonal läuft (da er sie je verschieben kann). Ich weiß aber momentan keinen rechten Ansatz dafür um ...
a) einen MouseEvent an den Linienenden zu bekommen
b) Die Enden zu verschieben (vll. im Paint-Ereignis einfach die x bzw. y-Koordinaten an die der Maus anpassen...)
c) ....überhaupt alles...
Schön wäre es auch, wenn man die Linien größer und kleiner machen könnte... mhhh.... also wenn jemand eine Idee hat... her damit 🙂
Grüße!
a) die koordinaten beider linienenden in dem control, oder form merken (besser ein control)
b) im mousedown event prüfen ob die mousekoords mit einer der linien koords übereinstimmen (ggf mit etwas freiraum, damit der benutzer nicht soo genau clicken muss)
b1) irgendwas auf true setzen, das erst im mouseup wieder auf false gesetzt wird
c) im mousemove event auf dieses true testen und die koordinaten neu setzen sowie ein Invalidate() auslösen um das control neu zu zeichnen (wodurch die verschobene linie sichtbar wird)
loop:
btst #6,$bfe001
bne.s loop
rts
da fällt mir ein:
du kannst auch allgemein im mousemoved event prüfen ob du zufällig "in der nähe" einer koordinate bist, und dann diese hervorheben (klitzekleines quadrad drumrum zeichnen) damit der user merkt was los ist, und ein click was bewirken könnte...
loop:
btst #6,$bfe001
bne.s loop
rts
Danke für die Tipps... so in der Art habe ich auch schon gedacht...
Aber habe nun diese Seite gefunden: http://www.codeproject.com/csharp/lineditor.asp#xx1055999xx
da ist schon so ziemlich das, was ich will....
ABER 😉
Wir wäre es möglich, zu der Linie noch eine Beschreibung hinzuzufügen? z.B. per DrawString.... ?!
Na da antworte ich mir doch mal wieder selber 🙂
Ich habe mir jetzt eine Linien-Klasse gebaut, die Start- und Endpunkt hat sowie einen Beschreibungs-String...und wenn ich dann im Paint() alle Linien zeichne, mache ich einfach ein DrawString(myLine.Info, ...) mit ... =)
Hey, das war ja doch ganz einfach 8)
Hast du alles was du brauchst?
Als Empfehlung: lies auch Diskussion zum Projekt. Bleibts bei den Linien selbst, ist Lösung genügend, lesen würd ichs trotzdem(es sei denn ist das letzte Projekt).
Am Ende werden Fragen gestellt, Also Artikel + Forum. Einfach runterscrollen.