private void pictureBoxMain_MouseMove(object sender, MouseEventArgs e) { if (state == SELECT_STATE) { if (isChangingShape) { processChanging(e); } return; } // neu khong con mouse down thi khong ve nua if (!isMouseDown) { return; } // them diem hien tai vao click points clickedPoints.Add(e.Location); // tao shape MyShape myShape = null; switch (state) { case LINE_STATE: myShape = new MyLine(getPenAttr(), clickedPoints); break; case RECTANGLE_STATE: myShape = new MyRectangle(getPenAttr(), clickedPoints); break; case ELLIPSE_STATE: myShape = new MyEllipse(getPenAttr(), clickedPoints); break; case POLYGON_STATE: myShape = new MyPolygon(getPenAttr(), clickedPoints); break; case PARALLELOGRAM_STATE: myShape = new MyParallelogram(getPenAttr(), clickedPoints); break; case BEZIER_STATE: myShape = new MyBezier(getPenAttr(), clickedPoints); break; case PARABOL_STATE: myShape = new MyParabol(getPenAttr(), clickedPoints); break; case ARC_STATE: myShape = new MyArc(getPenAttr(), clickedPoints); break; default: break; } if (myShape != null) { // ve tren bitmap_temp bitmap_temp = (Bitmap)bitmap_primary.Clone(); pictureBoxMain.Image = bitmap_temp; myShape.draw(bitmap_temp, pictureBoxMain); myShape.drawEdgePoints(bitmap_temp, pictureBoxMain); } // remove vi tri vua ve // vi day chi la mouse move tam thoi clickedPoints.RemoveAt(clickedPoints.Count - 1); }