Klasse in Visual C# um Rechtecke zu zeichnen

Gast #1188490
Lesenswert?
• ▲
▼
Hi flacks,

schaue Dir mal folgende Klasse an: System.Windows.Forms.ControlPaint

Vielleicht findest Du da, was Du suchst. Ansonsten hat die Klasse
System.Drawing.Graphics diverse Methoden zum Zeichnen und Füllen von 
Linien, Rechtecken, ...

Gruß
Markus
#1188739
Lesenswert?
• ▲
▼
Du musst unterscheiden zwischen deinen Daten und der Darstellung deiner 
Daten. Die System.Drawing Funktionen stellen dir Methoden zur Verfügung, 
mit denen du etwas zeichnen kannst. Zeichnen bedeutet: irgendwelche 
Pixel werden auf irgendwelche Werte gesetzt.
Aber: Nachdem die Dinge gezeichnet sind, ist damit das Thema für die 
Library vorbei. Das Rechteck existiert für die Bibliothek nicht mehr als 
Rechteck, es ist als solches nicht mehr angreifbar.

Es ist daher dein Job, dir eine Datenstruktur aufzubauen, in der dein 
Programm weiß, welches Rechteck es gibt und wo es angezeigt wird. Es ist 
auch letzten endes dar Job deines Programmes zu entscheiden, was mit 
einem Mausklick gemacht werden soll. Die Bibliothek kann ja nicht 
wissen, was sie tun soll, wenn mehrere Rechteck überlappend gezeichnet 
werden und der Benutzer in den überlappenden Bereich klickt. Welches 
Rechteck gilt denn? Das kann je nach Programm, je nach Aufgabenstellung, 
je nach Situation ein völlig anderes sein.

Auch wenn dir C# vieles abnimmt. Programmieren musst du immer noch 
selber.
Gast #1189288
Lesenswert?
• ▲
▼
OK habs ja jetzt auch alles "von Hand" gemacht und funktioniert 
einwandfrei.

Aber ich hab noch eine Frage:
Ich möchte dass die Zeichnung im Fenster mit dem Scrollen verschoben 
wird. Soll ich das auch "von Hand" programmieren oder gibt es da 
irgendwas was das abnimmt?
Wenn ich z.B. eine PaintBox-Komponente (gibt es das in c#?) hätte wäre 
diese PaintBox ja fest auf dem Fenster platziert  sie würde durch das 
Scrollen mitverschoben werden. Aber da ich mit dem Graphics-Objekt ja 
direkt auf das Formular so wie es momentan ist zeichne geht das nicht so 
einfach.

Oder hat da jemand einen Tipp?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren