mikrocontroller.net

Forum: PC-Programmierung Klasse in Visual C# um Rechtecke zu zeichnen


Autor: flacks (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

in frühere Visual Basics gab es immer eine Klasse "Shape", die einfach 
nur eine Form (Rechteck, Kreis) in dem Fenster darstellen.

Gibt es das in Visual C# 2008? Bzw. welche .NET-Klasse ist das?

Dankeschön.

flacks

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das geht natürlich. Such mal im Netz oder in der Hilfe vom Visual 
Studio (MSDN) nach nach GDI+, dann wird Dir geholfen.

Autor: Chris ... (dechavue)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Es gibt nicht direkt ein Control (Also was man mit dem Designer auf der 
Form platzieren kann)
Allerdings ist es nicht weiter schwer sachern per Code zu Zeichnen, 
siehe hierzu folgendes Tutorial: 
http://www.mycsharp.de/wbb2/thread.php?threadid=21782

greets

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Daniel V. (volte)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

genau die System.Drawing Klasse
Wie schon erwähnt bietet MSDN sehr gute (deutsche!!) Hilfestellung.


.DrawRectangle wäre so eine Methode....

http://msdn.microsoft.com/de-de/library/system.dra...


mfG :-)

Autor: flacks (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie sieht es dabei dann mit dem Thema Drag&Drop aus? Ich möchte dass man 
dieses Rechteck dann in dem Fenster mit der Maus verschieben kann!

Wie könnte man das machen?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: flacks (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Chris ... (dechavue)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Hier noch zwei Tutorials:

Wie man per Code gezeichnete Objekte mit der Maus verschiebt: 
http://www.mycsharp.de/wbb2/thread.php?threadid=29081

Und noch was zum Scrollen: 
http://www.mycsharp.de/wbb2/thread.php?postid=145740

greets

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.