Mega Code Archive

 
Categories / C# Tutorial / 2D Graphics
 

Double Buffering Example

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Windows.Forms;   class Form1 : Form   {     public Form1()     {     }     protected override void OnPaint(PaintEventArgs e)     {       Graphics displayGraphics = e.Graphics;       Random r = new Random();       Image i = new Bitmap(ClientRectangle.Width, ClientRectangle.Height);       Graphics g = Graphics.FromImage(i);       g.FillRectangle(Brushes.White, ClientRectangle);       for (int x = 0; x < ClientRectangle.Width; x++)       {         for (int y = 0; y < ClientRectangle.Height; y += 10)         {           Color c = Color.FromArgb(r.Next(255), r.Next(255),r.Next(255));           Pen p = new Pen(c, 1);           g.DrawLine(p, new Point(0, 0), new Point(x, y));           g.DrawLine(p, new Point(10, 10), new Point(x, y));           g.DrawLine(p, new Point(20, 10), new Point(x, y));           g.DrawLine(p, new Point(30, 10), new Point(x, y));           g.DrawLine(p, new Point(40, 10), new Point(x, y));           g.DrawLine(p, new Point(50, 10), new Point(x, y));           g.DrawLine(p, new Point(60, 10), new Point(x, y));           g.DrawLine(p, new Point(70, 10), new Point(x, y));           g.DrawLine(p, new Point(80, 10), new Point(x, y));           g.DrawLine(p, new Point(90, 10), new Point(x, y));           p.Dispose();         }       }       displayGraphics.DrawImage(i, ClientRectangle);       i.Dispose();     }     [STAThread]     static void Main()     {       Application.EnableVisualStyles();       Application.Run(new Form1());     }   }