使用不同类中的方法绘制图形

时间:2017-02-21 08:53:55

标签: c# graphics

我正在制作一个超级简单的应用程序来绘制用例。

我想在Form1中的picturebox中画一个火柴人。但是,我希望所有绘图代码都在我的类中的方法中,称为" Actor"然后当我单击带有单击事件的表单时调用此代码。

这是我的演员类

class Actor
{
    // Fields
    private string actorName { get; set; }
    private int actorX  { get; set; }
    private int actorY { get; set; }

    // Constructors
    public Actor(string name, int x, int y)
    {
        actorName = name;
        actorX = x;
        actorY = y;
    }

    // Methods
    public void DrawActor()
    {
        //  ??
    }
}

如何将表单中的图形对象传递给我班级的方法?

1 个答案:

答案 0 :(得分:0)

您的表单类看起来像这样我猜测:

private void button1_Click(object o, EventArgs e) {
    control1.Invalidate();
}

private void control1_Paint(object o, PaintEventArgs e) {
    Graphics graphics = e.Graphics;
    Rectangle rectangle = new Rectangle(50, 100, 150, 150);
    graphics.DrawEllipse(Pens.Black, rectangle);
    graphics.DrawRectangle(Pens.Red, rectangle);
}

您正在绘制图形对象。因此,只需将图形对象传递给Draw方法并更改绘制事件即可。

public void DrawActor(Graphics graphics) {
    Rectangle rectangle = new Rectangle(50, 100, 150, 150);
    graphics.DrawEllipse(Pens.Black, rectangle);
    graphics.DrawRectangle(Pens.Red, rectangle);
}

private void control1_Paint(object o, PaintEventArgs e) {
    Graphics graphics = e.Graphics;
    myActor.DrawActor(graphics);
}