如何在c#中记录多次鼠标点击

时间:2014-03-26 20:35:41

标签: c# image list graphics draw

我正在尝试用c#创建一个绘图程序,当我点击鼠标时,我已经在屏幕上绘制了对象。知道我要做的是记录用户点击的所有位置,以便稍后重绘图形。我知道我可以用这个列表做到这一点:

Point recordpoint = new Point(i.X, i.Y);
List<Point> pts = new List<Point>();
pts.Add(recordpoint);

这只会添加最后一次鼠标点击,我需要知道如何在列表中添加无限量的鼠标点击,我不知道如何执行此操作。

如果有人知道怎么做,我会很高兴。

2 个答案:

答案 0 :(得分:1)

假设您有一个“OnClick”事件可供处理,那么您可以将集合移动到类级别并在点击时设置新项目:

public class MyClass
{

List<Point> pts = new List<Point>();//This way the member persists

public void OnClick(TypeName i, EventArgs e)//whatever params are..
{
    Point recordpoint = new Point(i.X, i.Y);//create element
    pts.Add(recordpoint);//insert into collection
}

}

答案 1 :(得分:0)

每次添加点时都会创建一个新列表。

List<Point> pts移到Form类的顶层,因此您只创建一个列表。

class PaintForm : Form {

    // declare a list of points as a field
    private List<Point> pts = new List<Point>();

    // ..

    private void PictureBox1_OnMouseDown(..) {  // or whereever this code was
        Point recordpoint = new Point(i.X, i.Y);
        pts.Add(recordpoint);    
    }

    // ..
}