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 :

Appeler une fonction d'un windows form à un autre


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2012
    Messages : 20
    Points : 16
    Points
    16
    Par défaut Appeler une fonction d'un windows form à un autre
    Bonjour, bonjour,

    J'ai un petit problème dans mon projet Visual Studio en C#.

    Le context :

    J'ai un premier windows forms qui est le principal, celui qui se lance au lancement du projet, dans ce windows forms, j'ai des arbres pour parcourir une base de donnée.
    Alors d'un appuie sur un bouton je viens ouvrir un deuxième windows form, qui remplis un formulaire et va venir faire des modifications dans ma base, donc dans les arbres du premier windows Forms. Je voudrais donc pouvoir appeler ma fonction de rebuiltree qui se trouve dans le premier windows form, mais du deuxième windows form.

    Donc je me suis dit, je vais passer ma fonction en statique public, comme ça j'y ai accès ! Maic ça me met des erreurs parce que dans la fonction en question j'ai des instructions du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                this.TestsBaseCmp.RemoveAllGroups();
                this.TestsBaseSuite.RemoveAllGroups();
     
                SetUpDataBindingResultsCampaign();
                SetUpDataBindingResultsSuite();
    Et il aime pas du tout le petit compilateur...

    Une piste ?

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 262
    Points : 230
    Points
    230
    Par défaut
    Bonjour,

    Tu peux créer un événement dans ta form2.
    Tu le hook dans ta Form1.
    Quand tu le déclenches dans ta Form2, ta Form1 va le récupérer et exécuter ta fonction.
    Tox

  3. #3
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    La Form2 doit avoir connaitre l'instance de Form1. Tu peux par exemple la passé par le constructeur de Form2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class Form2 : Form
    {
        Form1 _form1;
        public Form2(Form1 form1)
        {
            _form1 = form1;
        }
     
        void MaMethod()
        {
             _form1.LaMethodAAppeler();
        }
    }
    Dans Form1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Form2 form2 = new Form2(this);
    form2.ShowDialog();

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2012
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    alors j'ai effectué les modifications que vous m'avez recommandé, une erreur persiste mais je pense qu'on tient le bon bout ! ^^

    'System.Windows.Forms.Form' ne contient pas une définition pour 'RebuildTreee' et aucune méthode d'extension 'RebuildTreee' acceptant un premier argument de type 'System.Windows.Forms.Form' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante*?)
    RebuildTreee est le nom de ma fonction dans mon form1.

  5. #5
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Sans le code, ça va être dur de deviner le problème

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2012
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    oupssss _ Sorry !

    Dans Form2 alias ModifiedSuite :

    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
     
    public partial class ModifiedSuite : Form
    {
           Form Navigation;
     
           public ModifiedSuite(Form Navigation)
           {
                this.Navigation = Navigation;
           }
    }
     
    public void Rebuild()
    {
              Navigation.RebuildTreee();
    }
    Dans Form1 : Alias Navigation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Form ModifiedSuite = new ModifiedSuite(this);
    ModifiedSuite.Show();

  7. #7
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Tu as mal lu mon exemple

    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
    public partial class ModifiedSuite : Form
    {
           Navigation Navigation;
    
           public ModifiedSuite(Navigation Navigation)
           {
                this.Navigation = Navigation;
           }
    }
    
    public void Rebuild()
    {
              Navigation.RebuildTreee();
    }

  8. #8
    Invité
    Invité(e)
    Par défaut Question en POO (Débutant)
    Résolut merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/07/2010, 09h23
  2. Appeler une fonction lors d'un show() d'une Window
    Par astragoth dans le forum PyQt
    Réponses: 1
    Dernier message: 25/03/2009, 16h49
  3. Réponses: 2
    Dernier message: 06/03/2008, 21h20
  4. Appeler une fonction d'un fichier SWF depuis un Form VB6
    Par Silk_do_Nadear dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 03/04/2007, 07h25
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

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