How to Draw a Rectangle?
-
I want to draw a rectangle while moving the mouse. But the event handlers below would preserve all the intermediate rectangles in the window. How to erase the intermediate rectangles and only show the last rectangle? Thanks. private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { firstpoint = new Point(e.X,e.Y); } private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { Graphics g = this.CreateGraphics(); Pen dotPen = new Pen(Color.Black, 1);dotPen.DashStyle=DashStyle.Dot; g.DrawRectangle(dotPen,firstpoint.X,firstpoint.Y,e.X-firstpoint.X,e.Y-firstpoint.Y); } private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) { secondpoint=new Point(e.X,e.Y); Graphics g = this.CreateGraphics(); Pen dotPen = new Pen(Color.Black, 1);dotPen.DashStyle=DashStyle.Dot; g.DrawRectangle(dotPen,firstpoint.X,firstpoint.Y,e.X-firstpoint.X,e.Y-firstpoint.Y); }
-
I want to draw a rectangle while moving the mouse. But the event handlers below would preserve all the intermediate rectangles in the window. How to erase the intermediate rectangles and only show the last rectangle? Thanks. private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { firstpoint = new Point(e.X,e.Y); } private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { Graphics g = this.CreateGraphics(); Pen dotPen = new Pen(Color.Black, 1);dotPen.DashStyle=DashStyle.Dot; g.DrawRectangle(dotPen,firstpoint.X,firstpoint.Y,e.X-firstpoint.X,e.Y-firstpoint.Y); } private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) { secondpoint=new Point(e.X,e.Y); Graphics g = this.CreateGraphics(); Pen dotPen = new Pen(Color.Black, 1);dotPen.DashStyle=DashStyle.Dot; g.DrawRectangle(dotPen,firstpoint.X,firstpoint.Y,e.X-firstpoint.X,e.Y-firstpoint.Y); }
I think you should draw your rectangle in the Form's Paint event As per my knowledge using the CreateGraphics() draws a drawing permanently -- modified at 8:18 Thursday 13th October, 2005