In C# einen Kreis/ein Quadrat zeichnen?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Beispiel:

Pen pen = new Pen(Color.Black);
pictureBox1.CreateGraphics().DrawEllipse(pen, 30, 30, 10, 10);
pictureBox1.CreateGraphics().DrawRectangle(pen, 50, 50, 10, 10);
H2OWarrior 
Fragesteller
 29.09.2012, 11:36

Dankeschön, aber kann ich das noch irgendwie mit einer Farbe füllen?

0
WhiteGandalf  29.09.2012, 13:09
@H2OWarrior

Dasselbe mit "Fill" statt "Draw". Hast Du in Deiner IDE keine Syntax-Vervollständigung?!? Benutzt Du überhaupt eine "IDE"?

0
H2OWarrior 
Fragesteller
 29.09.2012, 16:13
@WhiteGandalf

Natürlich habe ich geguckt ob ich mit der Vervollständigung einen solchen Befehl finde, aber ich habe gedacht, dass fängt auch mit draw an^^ Man kann ja auch nicht alles wissen. :)

0
Unsinkable2  30.09.2012, 14:56
@H2OWarrior

Man kann ja auch nicht alles wissen. :)

"Man muss nicht alles wissen, man muss nur wissen, wo es steht", sagte mal ein berühmter Mann. ;)

Wie du allerdings darauf kommst, dass "Fill" (= Füllen) mit "Draw" (= Zeichnen) "anfängt", müsstest du mir mal genauer erklären...

0

Baust du ne Windows-Form Anwendung? Wenn ja, dann kannst du dich zum Beispiel in das Paint-Event hängen und pinseln.

public Form1()
    {
        InitializeComponent();
        this.Paint += new PaintEventHandler(Form1_Paint);        
    }
    void Form1_Paint(object sender, PaintEventArgs e)
    {
        using (Graphics g = e.Graphics)
        {
            Pen pen = new Pen(Brushes.Blue, 2);
            g.DrawRectangle(pen, new Rectangle(new Point(10, 10), new Size(10, 10)));
            g.DrawEllipse(pen, new Rectangle(new Point(50, 50), new Size(20, 20)));
        }

    }
H2OWarrior 
Fragesteller
 29.09.2012, 16:16

Danke für die Antwort, aber Gruffalo's Code finde ich praktischer.

0
CrystalixXx  29.09.2012, 19:33
@H2OWarrior

Tatsächlich? Minimiere deine Anwendung und stelle sie wiederher. Deine Zeichnungen sind ebenfalls fort. Der Code wird nämlich nur einmalig ausgeführt und bei jedem Neuzeichnen nicht erneut aufgerufen.

Anders sieht das beim Paint-Ereignis aus, dass jedesmal aufgerufen wird, wenn ein Neuzeichnen angefordert wurde. Daher gibt es im Grunde keinen sinnvollen Nutzen der Funktion "CreateGraphics". Noch dazu wurde in seinem Code das Graphics-Objekt nicht verworfen. Ich sehe jetzt schon MemoryLeaks vor meinem geistigen Auge ...

Anfänger wissen aber häufig alles besser.

0

Das Copyriht Zeichen ist bereits in vielen Integriert und muss nicht gebastelt werden.