c#从另一个表单中绘制

时间:2014-03-13 15:22:16

标签: c# winforms drawing

我正在制作简单的游戏(c#Win Forms),我的角色在关键事件(箭头)上移动。

主要课程:

switch(e.Keycode)
{
    case Keys.Left:
    creature.moveleft(this,speed);
}

我的生物类看起来像这样:

public void Left(object sender,int speed)
{
    Form form = (Form)sender;

     Graphics grp = form.CreateGraphics();
    ..
    ..
    ..
}

我不喜欢每次想要画画时我必须通过this。我最终为Creature类中的每个draw方法都有Form form=(Form)sender

有更好的方法吗?

我认为如果我在我的Creature类中继承Form而不是使用Graphics grp=this.CreateGraphics会起作用,但它实际上并没有绘制任何东西。

由于

1 个答案:

答案 0 :(得分:0)

如果在创建表单后创建了Creature类,为什么不将表单作为参数传递给构造函数,例如:

public class Creature
{
    private Form form;

    public Creature(Form form)
    {
        this.form = form;
    }

    ...

    public void Left(int speed)
    {
        Graphics grp = form.CreateGraphics();
        ..
        ..
        ..
    }
}