如何在vb中引发c#中的事件?

时间:2015-10-15 14:03:18

标签: c#

我需要使用用Visual Basic编写的遗留库来引发一些事件。实际上,如果引发其中一个事件,我不知道如何在我的新c#项目中绑定一个动作。

遗留代码中的事件定义如下

Public Event OnStartOfMainLoop(ByRef evt As HandlerEvent, ByVal datapath As String, ByRef skipRun As Boolean, ByRef refreshQueueMap As Boolean, ByRef refreshFormsMap As Boolean)

并提出

RaiseEvent OnStartOfMainLoop(evt, datapath, skipRun, refreshQueueMap, refreshFormsMap)

现在我如何在新项目中接收此事件并处理它?<​​/ p>

1 个答案:

答案 0 :(得分:2)

在C#中,您只需订阅该事件:

obj.OnStartOfMainLoop += MyEventHandlerMethod;

public void MyEventHandlerMethod(ref HandlerEvent evt, string datapath,
        ref bool skipRun, ref bool refreshQueueMap, ref bool refreshFormsMap)
{
    //Handle the event here
}

其中obj是您订阅的对象的实例,MyEventHandlerMethod是您要将其路由到的方法。

您需要确保处理程序方法正确实现事件所需的签名。