Subscribe to C# .net Event in VB6(在 VB6 中订阅 C# .net 事件)
问题描述
我需要能够在 VB6 中处理 .net 事件.到目前为止,我通过使我的 c# 类 COM 可见来设置它.我的 VB6 对象可以很好地调用它的方法,但现在我需要某种方式从 .net 到 VB 进行通信.如果我向我的 c# 类添加一个事件,.net 包装器似乎添加了一个 add_EventName 和 remove_EventName 我假设这是订阅和取消订阅该事件.但是当谈到 VB6 时,我仍然是一个新手,所以我不太确定如何使用它.
I need to get be able to handle a .net event in VB6. So far i have it set up by making me c# class COM visible. My VB6 object can call methods on it fine but now i need some way to communicate from .net to VB. If i add an event to my c# class the .net wrapper seems to add an add_EventName and remove_EventName which i assume this is to subscribe and unsubscribe to the event. But i'm still a novice when it comes to VB6 and come so i'm not really sure how to use it.
add_EventName 似乎需要一个 EventNameEventHadler 但我给它什么呢?我尝试了 sub 但这给了我一个运行时错误.有谁知道如何使用这个?这是我所拥有的示例
The add_EventName seems to take an EventNameEventHadler but what do i give it? i tried the sub but this gives me a runtime error. Anyone know how to use this? Here is an example of what i have
Private oHost As HostService.IHost
Private Sub Form_Load()
Set oHost = New HostService.Host
oHost.Start
oHost.add_EvalReceived EvalReceivedEventHandler
End Sub
Private Sub EvalReceivedEventHandler(ByVal sender As Variant, ByVal e As EvalReceivedEventArgs)
MsgBox "Eval Received in VB: " & e.Eval.TimeSent & ":" & e.Eval.FirstName & " " & e.Eval.LastName & " - " & e.Eval.Comments
End Sub
所以 oHost.add_EvalReceived 行是错误的
So oHost.add_EvalReceived line is wrong
推荐答案
您可以尝试将 WithEvents
添加到您的 oHost
You could try adding WithEvents
to your declaration of oHost
Private WithEvents oHost As HostService.IHost
那么 IDE 应该允许您在 oHost
上创建事件处理程序.这就像制作您的 Form_Load
事件处理程序一样.代码窗口左上角的下拉菜单应该让您选择 oHost
.
Then the IDE should allow you to create event handlers on oHost
. It's just like making your Form_Load
event handler. The drop-down at the top-left of the code window should let you select oHost
.
免责声明:我已经多次使用它来处理来自 COM 对象的事件.我实际上从未尝试过通过互操作处理来自 .Net 对象的事件,但我认为您必须这样做.
Disclaimer: I've used this many times to handle events from COM objects. I've never actually tried handling events from a .Net object through interop, but I would think you must do it like this.
这篇关于在 VB6 中订阅 C# .net 事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 VB6 中订阅 C# .net 事件


基础教程推荐
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01
- JSON.NET 中基于属性的类型解析 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01