IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] Appeler une sub public dans un module de form


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    csdcsdc
    Inscrit en
    Juin 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : csdcsdc

    Informations forums :
    Inscription : Juin 2004
    Messages : 83
    Points : 65
    Points
    65
    Par défaut [VB.NET] Appeler une sub public dans un module de form
    Bonjour,

    est-il possible d'appeler une "Public Sub xxx(.....)" ecrite dans un module
    vb d'une form depuis une autre form ?
    j'ai pas d'erreur a la compile mais ca plante avec l'erreur "Informations
    supplémentaires : La référence d'objet n'est pas définie à une instance d'un objet."

    Pourtant j'ai bien déclaré la référence de ma form contenant ma sub de
    maniere globale (?) :

    >Public Class mdiMain
    > Inherits System.Windows.Forms.Form
    >
    > Dim myFrmToto As frmToto
    (le new (myFrmToto = New frmToto) est fait plus tard mais avant l'appel de la fonction)


    Le code de l'appel est dans la feuille mdi mere.
    L'appel de la fonction est :
    > myMDIFille.MaFonction(MesParam.....)

    La fonction est dans une mdi fille.
    La fonction est ecrite comme suit :
    > Public Sub MaFonction(MesParam.....)


    J'ai surement oublié qque chose ... tout conseil sera le bienvenu.

    Merci encore.

  2. #2
    Membre du Club
    Profil pro
    csdcsdc
    Inscrit en
    Juin 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : csdcsdc

    Informations forums :
    Inscription : Juin 2004
    Messages : 83
    Points : 65
    Points
    65
    Par défaut Trouvé une solution mais il y a surement plus simple
    J'ai trouvé une solution qui consiste à récupérer la référence à la feuille ou se trouve la fonction a appeler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
        Public Function GetMDIChild(ByVal sMDIChildName As String) As Form
     
            Dim x As Integer
     
            For x = 0 To (Me.MdiChildren.Length) - 1
                If Me.MdiChildren(x).Name = sMDIChildName Then
                    GetMDIChild = Me.MdiChildren(x)
                    Exit Function
                End If
            Next
     
            GetMDIChild = Nothing
     
        End Function
     
        Private Sub mmnHelpAProposDe_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mmnHelpAProposDe.Click
     
            Dim frmOneForm As frmSoilsList
     
            frmOneForm = GetMDIChild("frmSoilsList")
            frmOneForm.ModifyList("ADD", "10", "AAA", "Sol aaaa")
     
        End Sub
    mais c'est lourd, pourquoi ne pas pouvoir utiliser ma variable globale form ?

  3. #3
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    hum

    le new (myFrmToto = New frmToto) est fait plus tard mais avant l'appel de la fonction
    il faudrait etre absolument certain que myFrmToto est bien instanciee par le new lorsque t'essaie d'acceder a sa fonction

    myMDIFille.MaFonction(MesParam.....)
    myMDIFille fait elle bien reference a myFrmToto? (ou l'inverse) il se peut que tu cree 2 instances de FrmToto et qu'une seule soit affichee

    bref, fais de l'execution pas-a-pas, en verifiant les valeurs, si la FrmToto est bien initialisee au bon moment et si tu ne cree pas deux instance de FrmToto au lieu d'une

  4. #4
    Membre du Club
    Profil pro
    csdcsdc
    Inscrit en
    Juin 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : csdcsdc

    Informations forums :
    Inscription : Juin 2004
    Messages : 83
    Points : 65
    Points
    65
    Par défaut Bien vu ...
    Effectivement c bien le probleme, j'avais 2 variables du meme nom ...



    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/11/2009, 17h08
  2. Appeler une classe Frame dans un module
    Par metalamania dans le forum wxPython
    Réponses: 1
    Dernier message: 21/10/2009, 07h18
  3. [.net]Appeler une fonction située dans le code behind
    Par anto dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/05/2009, 13h05
  4. Appeler une requête paramétrée dans un sub
    Par Celephais dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 13/11/2007, 11h49
  5. Réponses: 1
    Dernier message: 27/02/2007, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo