none
VB : Communication Forms, Référence projets RRS feed

  • Question

  • Bonjour,

    J'ai 2 projets, 1 principal et 1 enfant.
    Le projet enfant fonctionne très bien mais quand je l'importe en référence dans mon projet principal, les fenêtres de dialogue de l'enfant ne sont plus capables de communiquer entre elles.
    En effet, dans le projet enfant il y a un formulaire qui récupère la valeur des Controls d'un autre formulaire enfant, mais la valeur retournée est toujours Nothing quand le projet est utilisé dans un autre en tant que Référence.

    Quelqu'un aurait une idée ?
    vendredi 4 décembre 2009 13:34

Réponses

  • Bonjour,

    Dans votre cas vous devez comme vous l'avez dit, passer en paramètre l'instance de la frmMainB à la fenêtre dlgChildB.
    Evitez d'écrire directement :

    frmMainB.cboValues.Text



    Cela n'a pas de sens en orienté objet (en tout cas en C# ca ne compile pas).
    Il faut que frmMainB soit un variable contenant une instance de frmMainB.

    Cordialement


    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    • Marqué comme réponse Gilles Lautrou mercredi 9 décembre 2009 09:06
    mardi 8 décembre 2009 21:22
    Modérateur

Toutes les réponses

  • Bonjour,

    Il nous faudrait plus d'informations sur votre problème (code source).
    Avez-vous essayé d'utiliser le débogueur pour voir ou se situe le problème ?

    Cordialement
    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    dimanche 6 décembre 2009 11:57
    Modérateur
  • Bonjour,

    Voici mon architecture :
    -     Projet A
             => frmMainA
    -     Projet B
             => frmMainB
             => frmChildB

    Dans frmMainA :
       Dim frmB As New frmMainB
       frmB.Show()

    Dans frmMainB :
       Dim frmB As New frmChildB
       frmB.Show()

    Dans frmChild B :
       Dim val As String = frmMainB.cboB.Text.ToString

    => Cette dernière ligne fonctionne quand j'exécute mon application à partir de B, mais quand je l'exécute à partir de A (avec B en référence), toutes les valeurs récupérées de frmMainB depuis des frmChilds B valent Nothing.

    La seule parade que j'ai pour l'instant pu trouver est de passer le frmMainB en paramètre.
    lundi 7 décembre 2009 09:26
  • Bonjour,

    Est-il possible que vous puissiez m'envoyer un petit projet reproduisant le problème sur gilles.tourreau@pos.fr.
    Merci de mettre dans l'e-mail, le lien vers cette discussion.

    Cordialement
    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    lundi 7 décembre 2009 12:39
    Modérateur
  • Bonjour,

    Dans votre cas vous devez comme vous l'avez dit, passer en paramètre l'instance de la frmMainB à la fenêtre dlgChildB.
    Evitez d'écrire directement :

    frmMainB.cboValues.Text



    Cela n'a pas de sens en orienté objet (en tout cas en C# ca ne compile pas).
    Il faut que frmMainB soit un variable contenant une instance de frmMainB.

    Cordialement


    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    • Marqué comme réponse Gilles Lautrou mercredi 9 décembre 2009 09:06
    mardi 8 décembre 2009 21:22
    Modérateur
  • Ok merci beaucoup, problème résolu donc.
    mercredi 9 décembre 2009 09:06