Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
DrawLine -> Enden verschieben
schnecke
myCSharp.de - Member



Dabei seit:
Beiträge: 223

Themenstarter:

DrawLine -> Enden verschieben

beantworten | zitieren | melden

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!
private Nachricht | Beiträge des Benutzers
0815Coder
myCSharp.de - Member



Dabei seit:
Beiträge: 767

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
0815Coder
myCSharp.de - Member



Dabei seit:
Beiträge: 767

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
schnecke
myCSharp.de - Member



Dabei seit:
Beiträge: 223

Themenstarter:

beantworten | zitieren | melden

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.... ?!
private Nachricht | Beiträge des Benutzers
schnecke
myCSharp.de - Member



Dabei seit:
Beiträge: 223

Themenstarter:

beantworten | zitieren | melden

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)
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

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).
private Nachricht | Beiträge des Benutzers
schnecke
myCSharp.de - Member



Dabei seit:
Beiträge: 223

Themenstarter:

beantworten | zitieren | melden

Was meinst du mit Diskussion zum Project?!
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

Am Ende werden Fragen gestellt, Also Artikel + Forum. Einfach runterscrollen.
private Nachricht | Beiträge des Benutzers