Mega Code Archive

 
Categories / C# / 2D Graphics
 

Scribble with Mouse

using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; public class frmScribble : System.Windows.Forms.Form {     private System.ComponentModel.Container components = null;     private bool mouseDown = false;     private Point lastPoint = Point.Empty;     private string color = "black";     private Graphics g;     private Pen p;     public frmScribble() {         g = CreateGraphics();         p = new Pen(Color.FromName(color));     }     protected override void OnMouseDown(MouseEventArgs e) {         mouseDown = true;         if (e.Button == MouseButtons.Right) {             ContextMenu m = new ContextMenu();             m.MenuItems.Add(0, new MenuItem("black", new EventHandler(RightMouseButton_Click)));             m.MenuItems.Add(1, new MenuItem("white", new EventHandler(RightMouseButton_Click)));             m.MenuItems.Add(2, new MenuItem("red", new EventHandler(RightMouseButton_Click)));             m.MenuItems.Add(3, new MenuItem("green", new EventHandler(RightMouseButton_Click)));             m.MenuItems.Add(4, new MenuItem("blue", new EventHandler(RightMouseButton_Click)));             m.Show(this, new Point(e.X, e.Y));         }     }     protected void RightMouseButton_Click(object sender, EventArgs e) {         color = ((MenuItem)sender).Text;         p = new Pen(Color.FromName(color));     }     protected override void OnMouseUp(MouseEventArgs e) {         mouseDown = false;     }     protected override void OnMouseMove(MouseEventArgs e) {         if (lastPoint.Equals(Point.Empty)) lastPoint = new Point(e.X, e.Y);         if (mouseDown) {             Point pMousePos = new Point(e.X, e.Y);             g.DrawLine(p, pMousePos, lastPoint);         }         lastPoint = new Point(e.X, e.Y);     }     [STAThread]     static void Main() {         Application.Run(new frmScribble());     } }