为什么我认为撤消Drawline()无效?

时间:2018-08-23 04:02:46

标签: c#

我尝试删除最新的画线。

声明

Bitmap DrawArea ;          // global variable
Bitmap Previuos_DrawArea;  // global variable

当我单击按钮绘制线条时

private void button2_Click_1(object sender, EventArgs e)
    {
        Graphics g = Graphics.FromImage(DrawArea);
        Previuos_DrawArea_img = DrawArea;
        g.(new Pen(Brushes.BlueViolet, 1.0F),0,10,10,20);
        pictureBox1.Image = DrawArea;
    }

当我单击按钮以删除行时

private void button3_Click_1(object sender, EventArgs e)
    {
        pictureBox1.Image = Previuos_DrawArea_img;
    }

概念:

第一步-声明变量。

第二步-备份当前图片。

第三步-绘制新图片。

第四步-如果撤消,只需绘制备用图片即可。

1 个答案:

答案 0 :(得分:1)

您不是在创建位图的副本,而只是将其存储在两个变量中。它们指向同一位图,因此编辑一个会影响另一个位图。您需要创建一个副本:

Previuos_DrawArea_img = new Bitmap(DrawArea);

现在它是一幅单独的图像,您对其中一个进行的处理不会影响另一个。