您将如何检测其他类中的库定义的事件?

时间:2014-06-02 12:24:48

标签: c# sdl

所以我正在使用SdlDotNet - 它基本上将SDL调用转换为C#应该是什么样的,我遇到了一个问题。

这个问题是因为SdlDotNet在与我的应用程序的主要部分不同的类中运行 - 我无法检测它何时关闭。

SdlDotNet库有一个事件,当它被告知关闭时会触发,该事件是:

SdlDotNet.Core.Events.Quit

在对象查看器中 - 事件显示如下:

public static event System.EventHandler<QuitEventArgs> Quit
Member of SdlDotNet.Core.Events

我做了什么,是否有一个主要的Windows窗体应用程序调用SDL类,如下所示:

private void drawToScreen()
{
    //Starts the SDL off drawing to the screen
    SDLDraw sdl = new SDLDraw();
    sdl.startDrawing();

    //How would I go about detecting SdlDotNet.Events.Quit
    //From the class I've instanced

    //When I was on my original Windows Forms implementation
    //It worked like this:

    ////sdl.FormClosed += new FormClosedEventHandler(detectClose);

    //But just copying that structure and trying

    ////sdl.Events.Quit += new QuitArgs(detectClose);

    //Doesn't have the same effect, because sdl does not contain a definition for 'Events'
}
private void detectClose(object sender, QuitArgs e)
{
    MessageBox.Show("SDL closed!")
}

所以,我想问题是我如何在我从类中调用的类中调用Events.Quit触发?

提前致谢!

1 个答案:

答案 0 :(得分:0)

声明显示这是一个静态事件,因此它与类相关联,而不是与实例相关联。使用

SdlDotNet.Core.Events.Quit += new QuitArgs(detectClose);