在每个鼠标单击上绘制单个矩形

时间:2017-01-24 08:57:26

标签: c# winforms

我正在尝试在Rectangle上绘制PictureBox,但当我点击其他位置时,Rectangle会移动到新位置。我想保留原始Rectangle并在给定坐标处绘制新的Rectangle

private void PictureBox_Paint(...)
Pen pen = new Pen(Color.Red, 3);
Rectangle rect = new Rectangle(x - 20, y - 10, 40, 20);
e.Graphics.DrawRectangle(pen, rect);

Example of what I am looking for

1 个答案:

答案 0 :(得分:3)

您需要将矩形添加到矩形列表中。

要做到这一点,只需替换:

<强>的OnClick

Rectangle rect = new Rectangle(x - 20, y - 10, 40, 20);

<强>绘图

e.Graphics.DrawRectangle(pen, rect);

使用:

<强>的OnClick

myRectangleCollection.Add(new Rectangle(x - 20, y - 10, 40, 20));

<强>绘图

foreach(Rectangle rect in myRectangleCollection)
{
     e.Graphics.DrawRectangle(pen, rect);
}

请不要忘记在表格初始化中初始化您的矩形列表:

List<Rectangle> myRectangleCollection = new List<Rectangle>();