5

私のコードには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();
}

問題は、eine.Graphics.DrawRectangle(p, r);がここに存在しないことです。それは理にかなっています、しかし、なぜ私はそれを何に置き換えて、同じ絵箱に再び描くのかわからないのです。

4

1 に答える 1

5

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();
}
于 2013-03-08T16:53:30.203 に答える