从不同的类绘制到Windows窗体中的图片框上

本文关键字:窗体 绘制 Windows | 更新日期: 2023-09-27 18:03:05

在我的代码中,我有一个带有背景图片的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.Graphics.DrawRectangle(p, r);中的e在这里不存在。这是有道理的,我明白为什么,然而,我不知道用什么来代替它,再画在同一个图片框上

从不同的类绘制到Windows窗体中的图片框上

尝试传递图形对象:

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();
}