我用以下方法去激活一个事件(Selected)可都不行,
只能在控件源码调度模式下通过,不能将控件编译完成再激活,为什么会这样,谢谢
并且将整个程序编译好后在smartcheck中调试时也可以激活事件,
我将这个控件及调用程序都编译成p-code还是不行,但所有方法中的MSGBOX还是可以执行的,也就是说他跳过了一个RaiseEvent
并在单独激活事件时(用一个COMMANDBUTTON进行RaiseEvent)可以用--------------------------------------------------------------------------------这个事件调用过程:
1。由一个对象先激活一个NewSelected事件(对象mSSelect)
2。由此控件在事件处理过程中再激活Selected事件,
3。在调用控件的程序中处理事件。
我已经将所有涉及此调用过程的错误处理全部取消还是没用,--------------------------------------------------------------------------------事件声明方法:
Public Event Selected(SelectID As String, SelectName As String, SelectItems As Object)
Event Selected(SelectID As String, SelectName As String, SelectItems As Object)
以上两个都试过--------------------------------------------------------------------------------方法一:直接激发
Private Sub mSSelect_NewSelected(SelectID As String, SelectName As String, SelectItems As Collection)
On Error Resume Next
'......code....
RaiseEvent Selected(SelectID, SelectName, SelectItems)
'.....code.....
End Sub--------------------------------------------------------------------------------
方法二:通过一个过程来激发,并在激发后进行提示
Private Sub NewSelectedEvent(SelectID As String, SelectName As String, Optional SelectItems As Collection)
RaiseEvent Selected(SelectID, SelectName, SelectItems)
End Sub
Private Sub mSSelect_NewSelected(SelectID As String, SelectName As String, SelectItems As Collection)
On Error Resume Next
'.....code.....
NewSelectedEvent SelectID, SelectName, SelectItems
MsgBox "RaiseEvent Selected_new"
'.....code.....
End Sub--------------------------------------------------------------------------------方法三:直接激发,并在激发后进行提示
Private Sub mSSelect_NewSelected(SelectID As String, SelectName As String, SelectItems As Collection)
On Error Resume Next
'.....code.....
DoEvents
MsgBox "RaiseEvent Selected_new"
NewSelectedEvent SelectID, SelectName, SelectItems
DoEvents
'.....code.....
End Sub
只能在控件源码调度模式下通过,不能将控件编译完成再激活,为什么会这样,谢谢
并且将整个程序编译好后在smartcheck中调试时也可以激活事件,
我将这个控件及调用程序都编译成p-code还是不行,但所有方法中的MSGBOX还是可以执行的,也就是说他跳过了一个RaiseEvent
并在单独激活事件时(用一个COMMANDBUTTON进行RaiseEvent)可以用--------------------------------------------------------------------------------这个事件调用过程:
1。由一个对象先激活一个NewSelected事件(对象mSSelect)
2。由此控件在事件处理过程中再激活Selected事件,
3。在调用控件的程序中处理事件。
我已经将所有涉及此调用过程的错误处理全部取消还是没用,--------------------------------------------------------------------------------事件声明方法:
Public Event Selected(SelectID As String, SelectName As String, SelectItems As Object)
Event Selected(SelectID As String, SelectName As String, SelectItems As Object)
以上两个都试过--------------------------------------------------------------------------------方法一:直接激发
Private Sub mSSelect_NewSelected(SelectID As String, SelectName As String, SelectItems As Collection)
On Error Resume Next
'......code....
RaiseEvent Selected(SelectID, SelectName, SelectItems)
'.....code.....
End Sub--------------------------------------------------------------------------------
方法二:通过一个过程来激发,并在激发后进行提示
Private Sub NewSelectedEvent(SelectID As String, SelectName As String, Optional SelectItems As Collection)
RaiseEvent Selected(SelectID, SelectName, SelectItems)
End Sub
Private Sub mSSelect_NewSelected(SelectID As String, SelectName As String, SelectItems As Collection)
On Error Resume Next
'.....code.....
NewSelectedEvent SelectID, SelectName, SelectItems
MsgBox "RaiseEvent Selected_new"
'.....code.....
End Sub--------------------------------------------------------------------------------方法三:直接激发,并在激发后进行提示
Private Sub mSSelect_NewSelected(SelectID As String, SelectName As String, SelectItems As Collection)
On Error Resume Next
'.....code.....
DoEvents
MsgBox "RaiseEvent Selected_new"
NewSelectedEvent SelectID, SelectName, SelectItems
DoEvents
'.....code.....
End Sub
Option ExplicitPublic Event Selected(SelectID As String)Public Sub test(s As String)
RaiseEvent Selected(s + s)
End Sub主程序窗体代码:
Option ExplicitPrivate Sub Command1_Click()
Me.UserControl11.test ("h")
End SubPrivate Sub UserControl11_Selected(SelectID As String)
MsgBox SelectID
End Sub