我是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++;
}
答案 0 :(得分:0)
代替
aPaintAction2.Clear();
从列表中删除所有项目,请尝试:
aPaintAction2 = new List<Point>();
这将创建一个新的空列表,但将旧列表保留在操作中。