gpt4 book ai didi

class - 如何将 WithEvents 关键字与全局变量一起使用?

转载 作者:行者123 更新时间:2023-12-04 17:24:31 25 4
gpt4 key购买 nike

我正在尝试在 VB6 模块中声明一个变量,如下所示:

Public WithEvents MyObject As MyClass

帮助文件说 WithEvents只能在类模块中使用。为什么不能用在 .bas模块?

我正在工作的遗留代码有一个在模块中全局声明的对象。我要加 WithEvents到这个声明,但我需要保持对象全局,因为许多其他形式等都引用了该对象。如何在对代码的干扰最小的情况下实现这一目标?

最佳答案

编写一个接受全局对象作为参数并接收其事件的类。

' Class MySink
Private WithEvents m_oSink As MyClass

Friend Sub frInit(oSink As MyClass)
Set m_oSink = oSink
End Sub

Private Sub m_oSink_MyEvent()
'--- implement event
End Sub

在您的 .bas 中创建此类的实例模块。
Public g_oMyObject AS MyClass
Private m_oMySink As MySink

Sub Main()
Set g_oMyObject = New MyClass
Set m_oMySink = New MySink
m_oMySink.frInit g_oMyObject
End Sub

关于class - 如何将 WithEvents 关键字与全局变量一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12152945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com