private void mainDrawingPicture_MouseMove(object sender, MouseEventArgs e) { lb_Mouse.Text = String.Format("Mouse Position: X: {0}; Y: {1}", e.X, e.Y); if (e.Button == MouseButtons.Left && currentTool != null) { if (currentTool.Type() == PaintTool.TransformationTool) { Transformation currentShape = currentTool.onMouseMove(e, paintParams) as Transformation; if (listView_layer.SelectedItems.Count > 0) { Layer layer = listView_layer.SelectedItems[0].Tag as Layer; layer.Transform(currentShape); ReDraw(); layer.ResetMatrix(); } } else if (currentTool.Type() == PaintTool.CDShapeTool) { Shape currentShape = currentTool.onMouseMove(e, paintParams) as Shape; ShapeLayer layer = listView_layer.SelectedItems[0].Tag as ShapeLayer; layer.setShape(currentShape); ReDraw(); } else if (currentTool.Type() == PaintTool.SelectionTool) { ShowVisibleLayers(); MyRectangle currentShape = currentTool.onMouseMove(e, paintParams) as MyRectangle; GraphicsPath path = currentShape.GetPath(); Pen pen = new Pen(Color.Black, 0.1f); float[] dashStyle = new float[] { 2, 5, 10, 4 }; pen.DashPattern = dashStyle; mainDrawingGraphics.DrawPath(pen, path); mainDrawingPicture.Refresh(); } } }