Grundlegende Funktionen

gObject auf einem Panel

Erstellen eines Zeichenobjekts

namespace _Graphics
{
    public partial class Form1 : Form
    {
        Graphics gObject;
        Pen pen;
        Brush brush;
 
        public Form1()
        {
            InitializeComponent();
            gObject = canvas.CreateGraphics();
        }
}

Zeichnen verschiedener Elemente

      private void button1_Click(object sender, EventArgs e)
        {
            //Pen und Brush definieren
            pen = new Pen(Color.Red, 2);
            brush = new SolidBrush(Color.Blue);
 
            //Linie
            gObject.DrawLine(pen, 10, 10, 50, 20);
 
            //Rechteck
            gObject.DrawRectangle(pen, 10, 25, 150, 20);
            Rectangle rechteck = new Rectangle(10, 50, 100, 30);
            gObject.DrawRectangle(pen, rechteck);
 
            gObject.FillRectangle(brush, 10, 100, 200, 40);
 
            //Ellipse
            gObject.FillEllipse(brush, 10, 160, 50, 50);
 
            //Punkte und Polygon
            Point[] punkte = new Point[3];
            punkte[0] = new Point(10, 250);
            punkte[1] = new Point(150, 250);
            punkte[2] = new Point(100, 300);
            gObject.DrawPolygon(pen, punkte);
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            //Löschen der gezeichneten Objekte
            gObject.Clear(Color.White);
        }

gObject mittels PictureBox

Das Verwenden des Graphics-Objekts mittels PictureBox hat den Vorteil, dass man die Grafik in ein Bitmap speichern sowie Farben von Pixeln auslesen kann:

 public partial class Form1 : Form
    {
        //Image für Bitmap
        Image img;
        //Graphics für die PictureBox
        Graphics gObject;
 
        //Brush und Pen
        SolidBrush brush = new SolidBrush(Color.White);
        Pen pen = new Pen(Color.Black);
 
        public Form1()
        {
            InitializeComponent();
            //neues Bitmap erstellen
            img = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            //Bitmap der PictureBox zuweisen
            pictureBox1.Image = img;
            //Graphics-Objekt erstellen
            gObject = Graphics.FromImage(pictureBox1.Image);
 
            gObject.FillRectangle(brush,0, 0, pictureBox1.Width, pictureBox1.Height);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            gObject.FillEllipse(brush, x, y, 20, 20);
            //Refresh ist nötig, damit das gezeichnete Objekt erscheint.
            pictureBox1.Refresh();
        }
 
        //Auslesen von Farben, wenn sich die Maus über die PictureBox bewegt
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            Bitmap bmp = (Bitmap)pictureBox1.Image;
            // Bitmap bmp = (Bitmap)img;  //ebenfalls möglich
            farbe = bmp.GetPixel(e.X, e.Y);
            // farbe=((Bitmap)img).GetPixel(e.X, e.Y);   //ebenfalls möglich
            pictureBox2.BackColor = farbe;
            label1.Text = farbe.ToString();
        }