【发布时间】:2011-04-13 13:58:30
【问题描述】:
我有以下几点:
一个游戏类
class Game
{
public event EventHandler GameOver;
public void go()
{
PlayerAliveEventArgs playerAlive = new PlayerAliveEventArgs(Alive);
GameOver(this, playerAlive);
}
}
那我有课
public class PlayerAliveEventArgs : EventArgs
{
public bool Alive { get; set; }
public PlayerAliveEventArgs(bool deadOrAlive)
{
Alive = deadOrAlive;
}
}
在另一个类中,我将方法绑定到事件...
public void Form_Load()
{
game.GameOver += Form1_GameOverMethod; // it shows the error here.
it says no overload of this method matches System.Eventhandler
}
public void Form1_GameOverMethod(object sender, PlayerAliveEventArgs e)
{
if (!e.Alive)
{
GameTimer.Enabled = false;
gameOver = true;
Refresh();
}
}
错误是:
此上下文中不存在方法。
为什么会这样?
好的,我做了以下更改:
public void Form1_GameOverMethod(object sender, EventArgs e)
{
PlayerAliveEventArgs d = (PlayerAliveEventArgs)e;
if (!d.Alive)
{
}
}
现在还好吗?或者当我运行它时它会引发一些问题(我想节省自己在后面调试..)
【问题讨论】:
-
这里的操作符(+=)为你的对象事件添加了一个事件处理方法。
标签: c# .net winforms events event-handling