在我的代码中,我有一张带有背景图片的PictureBox
。我曾经使用
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Pen p = new Pen(Color.Turquoise, 2);
Rectangle r = new Rectangle(600, 300, 5, 5);
e.Graphics.DrawRectangle(p, r);
p.Dispose();
}
现在,我知道我需要用这些矩形做很多事情并动态创建它们,我已经为它们创建了一个类,其构造函数如下所示:
public MyRectangles(int x, int y)
{
Pen p = new Pen(Color.Turquoise, 2);
Rectangle r = new Rectangle(x, y, 5, 5);
e.Graphics.DrawRectangle(p, r);
p.Dispose();
}
问题是,此处e
中的e.Graphics.DrawRectangle(p, r);
不存在。这是有道理的,我理解为什么,但是,我不知道该替换它,再次画在同一个图片框上。
答案 0 :(得分:4)
尝试传递Graphics对象:
public MyRectangles(Graphics g, int x, int y)
{
Pen p = new Pen(Color.Turquoise, 2);
Rectangle r = new Rectangle(x, y, 5, 5);
g.DrawRectangle(p, r);
p.Dispose();
}