VB 在类模块中调用窗口模块的EVENT的办法,请指点,感激不尽
窗体模块Form1PublicEventLoginRequest(ByValuseridAsString)PrivateSubCommand1_Click()RaiseE...
窗体模块 Form1
Public Event LoginRequest(ByVal userid As String)
Private Sub Command1_Click()
RaiseEvent LoginRequest("123456")
End Sub
类模块 Class1
Public WithEvents mLogin As Form1
Private Sub mfrmLogin_LoginRequest(ByVal userid As String)
mLogin.Text1.Text = userid
End Sub
Private Sub Class_Initialize()
Set mLogin = New Form1
End Sub
所要结果 : 我想在 Class1类模块中 调用 Form1模块里的
自定义EVENT LoginRequest 但是好像少了点什么。总之运行不起来。
(我知道可以直接给Text1.Text 赋值,但是想知道自定义EVENT的运用 ,所以)
问题1. 我所用的术语是否正确 比如--> 自定义EVENT 这个词用的正确吗?(因为我在网上搜的时候找不到相关的信息。我觉得可能是我用的关键字有问题。)
问题2. 想请高手指点 我所写的部分少了什么部分,或者错在哪里?
暂且以上。麻烦高手指点
我不太清楚,我到底有没有分。我随便把分选上了。我不想骗眼球。谢谢
不能在 类中调用 窗体的 Event 吗?? 我看到有人这么写了啊! 展开
Public Event LoginRequest(ByVal userid As String)
Private Sub Command1_Click()
RaiseEvent LoginRequest("123456")
End Sub
类模块 Class1
Public WithEvents mLogin As Form1
Private Sub mfrmLogin_LoginRequest(ByVal userid As String)
mLogin.Text1.Text = userid
End Sub
Private Sub Class_Initialize()
Set mLogin = New Form1
End Sub
所要结果 : 我想在 Class1类模块中 调用 Form1模块里的
自定义EVENT LoginRequest 但是好像少了点什么。总之运行不起来。
(我知道可以直接给Text1.Text 赋值,但是想知道自定义EVENT的运用 ,所以)
问题1. 我所用的术语是否正确 比如--> 自定义EVENT 这个词用的正确吗?(因为我在网上搜的时候找不到相关的信息。我觉得可能是我用的关键字有问题。)
问题2. 想请高手指点 我所写的部分少了什么部分,或者错在哪里?
暂且以上。麻烦高手指点
我不太清楚,我到底有没有分。我随便把分选上了。我不想骗眼球。谢谢
不能在 类中调用 窗体的 Event 吗?? 我看到有人这么写了啊! 展开
2个回答
展开全部
窗体也是类,所以类中响应窗体自定义事件也是可以的...
不过楼主的代码逻辑有问题,代码也有问题,类要创建实例才行:
'----------------------- '窗体代码:-----------------------
Option Explicit
'声明事件
Public Event LoginRequest(ByVal userid As String)
'声明启动事件的过程
Public Sub StartTest()
RaiseEvent LoginRequest("123456")
End Sub
'实例化类
Private Sub Command1_Click()
Dim cls As Class1
Set cls = New Class1
End Sub
'-----------------------------------------------------------
'------------------------ '类代码 --------------------------
Option Explicit
Public WithEvents mLogin As Form1
'响应窗体Form1的事件
Private Sub mLogin_LoginRequest(ByVal userid As String)
mLogin.Text1.Text = userid
End Sub
'实例化mLogin,并执行mLogin.StartTest方法
Private Sub Class_Initialize()
Set mLogin = Form1 '指向Form1,不能用new...
mLogin.StartTest
End Sub
'-----------------------------------------------------------
不过楼主的代码逻辑有问题,代码也有问题,类要创建实例才行:
'----------------------- '窗体代码:-----------------------
Option Explicit
'声明事件
Public Event LoginRequest(ByVal userid As String)
'声明启动事件的过程
Public Sub StartTest()
RaiseEvent LoginRequest("123456")
End Sub
'实例化类
Private Sub Command1_Click()
Dim cls As Class1
Set cls = New Class1
End Sub
'-----------------------------------------------------------
'------------------------ '类代码 --------------------------
Option Explicit
Public WithEvents mLogin As Form1
'响应窗体Form1的事件
Private Sub mLogin_LoginRequest(ByVal userid As String)
mLogin.Text1.Text = userid
End Sub
'实例化mLogin,并执行mLogin.StartTest方法
Private Sub Class_Initialize()
Set mLogin = Form1 '指向Form1,不能用new...
mLogin.StartTest
End Sub
'-----------------------------------------------------------
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询