我正在制作一个超级简单的应用程序来绘制用例。
我想在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()
{
// ??
}
}
如何将表单中的图形对象传递给我班级的方法?
答案 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);
}