private void PanelDraw_MouseMove(object sender, MouseEventArgs e) { //Adding (X,Y) to the moving figure to the old coordinates if (SelectedFigure != null && IsMoving) { SelectedFigure.Location = new Point(e.X - DeltaX, e.Y - DeltaY); } PanelDraw.Invalidate(); Application.DoEvents(); }
private void Delete_Click(object sender, EventArgs e) { //Delete selected figure if (SelectedFigure != null) { FigureList.Remove(SelectedFigure); } SelectedFigure = null; CalculateAreaPermiters(); PanelDraw.Invalidate(); }
private void Rotate_Click(object sender, EventArgs e) { if (SelectedFigure != null) { SelectedFigure.Rotate90(); } else { Mode.Text = "You must Select Figure"; } PanelDraw.Invalidate(); }
private void Clear_Click(object sender, EventArgs e) { FigureList.Clear(); CalculateAreaPermiters(); PanelDraw.Invalidate(); }
private void Edit_Click(object sender, EventArgs e) { IsEditing = true; if (SelectedFigure != null) { if (SelectedFigure is Rectangle) { var f = new RectPerimeters(this); f.ShowDialog(); if (CurrentFigure != null) { using (var graphics = PanelDraw.CreateGraphics()) { CurrentFigure.Color = OriginalColor; CurrentFigure.Location = SelectedFigure.Location; CurrentFigure.Index = SelectedFigure.Index; FigureList.Remove(SelectedFigure); CurrentFigure.Draw(graphics); FigureList.Add(CurrentFigure); } Mode.Text = "Figure: Rectangle has been edited successfully"; } } if (SelectedFigure is Circle) { var f = new CirclePerimeters(this); f.ShowDialog(); if (CurrentFigure != null) { using (var graphics = PanelDraw.CreateGraphics()) { CurrentFigure.Color = OriginalColor; CurrentFigure.Location = SelectedFigure.Location; CurrentFigure.Index = SelectedFigure.Index; FigureList.Remove(SelectedFigure); CurrentFigure.Draw(graphics); FigureList.Add(CurrentFigure); } Mode.Text = "Figure: Circle has been edited successfully"; } } if (SelectedFigure is Triangle) { var f = new TrianglePerimeters(this); f.ShowDialog(); if (CurrentFigure != null) { using (var graphics = PanelDraw.CreateGraphics()) { CurrentFigure.Color = OriginalColor; CurrentFigure.Location = SelectedFigure.Location; CurrentFigure.Index = SelectedFigure.Index; FigureList.Remove(SelectedFigure); CurrentFigure.Draw(graphics); FigureList.Add(CurrentFigure); } Mode.Text = "Figure: Triangle has been edited successfully"; } } SelectedFigure = null; CurrentFigure = null; PanelDraw.Invalidate(); IsEditing = false; } CalculateAreaPermiters(); PanelDraw.Invalidate(); if (SelectedFigure == null) { Mode.Text = "You must Select Figure"; } }
private void PanelDraw_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left && CurrentFigure != null) { using (var graphics = PanelDraw.CreateGraphics()) { CurrentFigure.Color = colorDialog1.Color; CurrentFigure.Location = e.Location; CurrentFigure.Draw(graphics); CurrentFigure.Index = FigureList .Select(f => f.Index) .OrderBy(i => i) .LastOrDefault() + 1; } FigureList.Add(CurrentFigure); Mode.Text = "Right Click On The Figure Will Select It"; CurrentFigure = null; if (SelectedFigure != null) { SelectedFigure.Color = OriginalColor; SelectedFigure = null; } } else if (e.Button == MouseButtons.Right) { //If the figure is no longer selected, figure's color turnes back to original color if (SelectedFigure != null) { SelectedFigure.Color = OriginalColor; Mode.Text = "Figure:"; } SelectedFigure = FigureList .OrderByDescending(i => i.Index) .Where(f => f.Contains(e.Location)) .FirstOrDefault(); //Selected figure turns Red if (SelectedFigure != null) { OriginalColor = SelectedFigure.Color; SelectedFigure.Color = Color.Red; if (SelectedFigure is Circle) { Mode.Text = "Figure: Circle is Selected"; } if (SelectedFigure is Triangle) { Mode.Text = "Figure: Triangle is Selected"; } if (SelectedFigure is Rectangle) { Mode.Text = "Figure: Rectangle is Selected"; } } //Checking if selected figure is clicked once again- figure is moving if (SelectedFigure != null && e.Button == MouseButtons.Right) { IsMoving = true; } if (SelectedFigure != null) { DeltaX = e.Location.X - SelectedFigure.Location.X; DeltaY = e.Location.Y - SelectedFigure.Location.Y; } } CalculateAreaPermiters(); PanelDraw.Invalidate(); }