是否可以從事件程序呼叫的程序中運行DoCmd.CancelEvent
或Cancel = True
運行,該程序可以取消其事件? 例如,
Private Sub mCbo_DblClick(Cancel As Integer)
DoThis
End Sub
Private Sub DoThis()
Foo
{ Cancel = True | DoCmd.CancelEvent }
Bar
End Sub
即,Cancel = True
/DoCmd.CancelEvent
陳述句會DoThis()
取消mCbo.DblClick
事件還是該陳述句僅在事件程序本身中有效?至少從廣義上講,前者似乎在范圍內,但這并不清楚。
其次,陳述句必須出現在哪里,后面的代碼會執行嗎? 即,將DoThis()
執行Bar
還是該陳述句將有效地運行Exit Sub
,立即停止任何進一步的執行?
這看起來很簡單,但是一兩個小時的谷歌搜索并沒有發現任何問題。非常感謝任何建設性的想法。
uj5u.com熱心網友回復:
您可以通過參考傳遞取消引數輕松地做到這一點:
Private Sub mCbo_DblClick(Cancel As Integer)
DoThis Cancel
End Sub
Private Sub DoThis(ByRef Cancel As Integer)
Foo
Cancel = True
Bar
End Sub
而且,當然,Bar
仍然運行。Exit Sub
如果你想阻止它運行,你可以使用它。該Cancel
引數只是一個整數,在所有事件處理程式運行后用于確定是否應取消默認行為。在程序中設定它不會立即執行任何操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/508024.html