''' <summary>Ouvrir un formulaire en utilisant son nom.</summary>
''' <param name="pForm_Name">Nom du formulaire.</param>
''' <param name="pDialog">Ouvrir le formualire en mode modal si 'Vrai'.</param>
''' <param name="pNamespace">Nom de l'espace de nom, si nécessaire.</param>
''' <remarks>Adapté de: http://www.daniweb.com/forums/thread191270.html, par: Teme64
''' Pour une autre classe, il suffit de changer le type, et l'action finale.
''' </remarks>
'''
Public Sub Ouvrir_Formulaire(ByVal pForm_Name As String _
, Optional ByVal pDialog As Boolean = False _
, Optional ByVal pNamespace As String = "" _
)
Dim objForm As Form 'Type formulaire
Dim FullTypeName As String
Dim FormInstanceType As Type
'Si le formulaire est dans un autre espace de nom
If pNamespace <> "" Then pNamespace = pNamespace & "."
FullTypeName = Application.ProductName & "." & pNamespace & pForm_Name
'Obtenir le type
FormInstanceType = Type.GetType(FullTypeName, True, True)
'Creer une instance de ce formulaire
objForm = CType(Activator.CreateInstance(FormInstanceType), Form) 'Type formulaire
'Action finale
'Afficher le formulaire selon le mode demandé
If pDialog Then
objForm.ShowDialog()
Else
objForm.Show()
End If
End Sub
''' <summary>Appeler un module par son nom.</summary>
''' <param name="pModul_Name">Nom du module à appeler.</param>
''' <param name="pModul_Params">Tableau de paramètre(s) si nécessaire.</param>
''' <param name="pCallType">Type de module à appeler.</param>
Public Sub Appel_Module(ByVal pModul_Name As String _
, Optional ByVal pCallType As CallType = CallType.Method _
, Optional ByVal pModul_Params As Object = Nothing _
)
Dim lModul As New Procedures_Appelées
CallByName(lModul, pModul_Name, pCallType, pModul_Params)
End Sub
''' <summary>Classe contenant les procédures pouvant être appelées.</summary>
''' <remarks>Il peut y avoir aussi des 'Properties', des fonctions
''' autant que nécessaire.
''' </remarks>
Public Class Procedures_Appelées
Public Sub test(ByVal pValue As String)
MsgBox(pValue)
End Sub
Private Sub Exemple()
Ouvrir_Formulaire("form2")
Appel_Module("test", "Ok")
End Sub