在Visual Basic .NET应用程序中,有没有办法在用C#编写的DLL中引用的对象上使用Handles
?编译代码会给我错误:
模块中的“句柄”必须指定一个 'WithEvents'变量用a限定 单一标识符。
我正在编写Visual Basic .NET应用程序,但我确实可以使用C#库的源代码。
我当前的代码看起来像这样:
WithEvents Friend Module As ModuleNamespace.Module
Sub EventHandler() Handles Module.Events.Event1
Console.WriteLine("Event1 fired.")
End Sub
用实际名称替换Module
,ModuleNamespace
和Event1
。
答案 0 :(得分:2)
您需要一个模块级变量来包含对象实例。航空代码:
Private WithEvents mMyObject As CSharpObject
Private Sub MyEvent(...) Handles mMyObject.SomeEvent
答案 1 :(得分:1)
听起来你没有一个对象实例可以方便绑定的事件。您可以尝试使用AddHandler而不是Handles关键字吗?
例如:
Private Sub BindEvents(ByVal someObject AS ClassInLibrary)
AddHandler someObject.EventName, AddressOf Foo
End Sub
Private Sub Foo(ByVal sender As Object, ByVal e As EventArgs)
End Sub