Appel de procédures et ouverture de formulaires en utilisant leur nom.

Contenu du snippet

    ''' <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
 
 


Compatibilité : VB 2005, VB 2008

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.