private void RedoButton_Click(object sender, EventArgs e) { IFigure tmp = FiguresFrontBuffer.Pop(); gr = Graphics.FromImage(MainPicture); tmp.DrawPanel = gr; tmp.Redraw(); FiguresBackBuffer.Push(tmp); UndoButton.Enabled = true; pictureBox1.Image = MainPicture; gr.Dispose(); if (FiguresFrontBuffer.Count == 0) { RedoButton.Enabled = false; } }
private void button1_Click(object sender, EventArgs e) { int N = FiguresBackBuffer.Count; if (N <= 0) { return; } if (FiguresFrontBuffer == null) { FiguresFrontBuffer = new UndoStack(); } IFigure Last = FiguresBackBuffer.ElementAt(0); Last.EndOfCurrentFigure = true; FiguresFrontBuffer.Push(Last); FiguresBackBuffer.Pop(); RedoButton.Enabled = true; gr = Graphics.FromImage(MainPicture); gr.Clear(pictureBox1.BackColor); FiguresBackBuffer.DrawStack(gr); pictureBox1.Image = MainPicture; if (FiguresBackBuffer.Count <= 0) { UndoButton.Enabled = false; } IFiguresCreator CurrentCreator = Creators.ElementAt <IFiguresCreator>(comboBox1.SelectedIndex); CurrentFigure = CurrentCreator.Create(-1, -1, gr, pen, FillColorPanel.BackColor); }