使用不同类中的方法绘制图形
我正在制作一个超级简单的应用程序来绘制用例。使用不同类中的方法绘制图形
我想在Form1中的图片框中绘制一个火柴人。但是,我希望所有绘图代码都位于我的类中名为“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()
{
// ??
}
}
我怎么会通过在表单中的图形对象通过在我的类中的方法?
你的表格类看起来像这样我猜:
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);
}
当我调用DrawActor方法时,我的输入是什么? –
啊傻我这是“Actor.DrawActor(pictureBoxName.CreateGraphics())” –
任何使用'CreateGraphics()'的代码都被破坏了。唯一的_correct_绘制方法是处理'Paint'事件,并且可以传递传递给事件处理程序的'Graphics'实例。 –
见标记为复制两个如何处理一个WinForms程序中的绘图,仅在'Paint'事件处理程序绘制,以及如何将事件的'Graphics'实例传递给一个单独的类的_correct_例子处理绘图。 –