分配了参数后,c#对象参数神秘地清除了

时间:2018-10-18 15:20:50

标签: c# list point mouseup

我是C#的新手。我想收集MouseUp事件中“绘画”操作的所有点。将参数从aPaintAction2传递到Actions2之后,我清除了aPaintAction2的内容。以某种方式,在清除aPaintAction2内容之后,也会清除Actions2中的参数值(传递的aPaintAction2)。

有人可以向我解释这是什么问题,为什么会发生?我只想将aPaintAction2保留的点传递到Actions2中,Actions2保留点参数,并清除aPaintAction2,以便aPaintAction2可以容纳新的点。谢谢。

    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
        if (moving && x != -1 && y != -1)
        {
            aPaintAction2.Add(e.Location);
            x = e.X;
            y = e.Y;
        }
    }

    private List<AnnotationAction> Actions2 = new List<AnnotationAction>();
    private List<Point> aPaintAction2 = new List<Point>();
    private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
        // save a Paint action
        Actions2.Add(new AnnotationAction(newActionId, pen.Color, pen.Width, aPaintAction2));

        aPaintAction2.Clear();

        moving = false;
        x = -1;
        y = -1;
        newActionId++;
    }

1 个答案:

答案 0 :(得分:0)

代替

aPaintAction2.Clear();

从列表中删除所有项目,请尝试:

aPaintAction2 = new List<Point>();

这将创建一个新的空列表,但将旧列表保留在操作中。