VB - Invoke control events on other forms without making events public
Call events on any form without making event public.
Code can be modified for any type of control.
VB Code:
'IN A MODULE
Option Explicit
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Private Const BM_CLICK As Long = &HF5
Public Function ClickAll(ByVal oForm As Form)
Dim ctrlControl As Control
Dim sName As String
For Each ctrlControl In oForm.Controls
DoEvents
'IF TARGET FORM IS THE HOSTING FORM THEN MAKE SURE NOT TO CLICK SELF
If TypeName(ctrlControl) = "CommandButton" And ctrlControl.Name <> "cmdClick" Then
SendMessage ctrlControl.hwnd, BM_CLICK, 0&, 0&
End If
Next
End Function
'BEHIND FORM1 WITH FOUR COMMANDBUTTONS(Name Command1 = cmdClick)
Option Explicit
Private Sub cmdClick_Click()
'YOU CAN USE THIS ON ANY FORM, JUST PASS THE TARGET FORMS NAME
Call ClickAll(Form2)
End Sub
Private Sub Command2_Click()
MsgBox "Form1 Command2_Click"
End Sub
Private Sub Command3_Click()
MsgBox "Form1 Command3_Click"
End Sub
Private Sub Command4_Click()
MsgBox "Form1 Command4_Click"
End Sub
'BEHIND FORM2 WITH FOUR COMMANDBUTTONS
Option Explicit
Private Sub Command1_Click()
MsgBox "Form2 Command1_Click"
End Sub
Private Sub Command2_Click()
MsgBox "Form2 Command2_Click"
End Sub
Private Sub Command3_Click()
MsgBox "Form2 Command3_Click"
End Sub
Private Sub Command4_Click()
MsgBox "Form2 Command4_Click"
End Sub