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

C# Discussion :

Appele d'une fonction d'une form ouverte


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 31
    Par défaut Appele d'une fonction d'une form ouverte
    Bonjour à tous,

    Voici mon problème : Comment appeler directement une fonction d'une autre form déja ouverte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      Form titi = new  Form();
      titi.Fonction();
    Ce code marche correctement, cependant j'aimerais que l'application accéde directement à cette fonction, sans passer à d'autre endroit. Car au début de m'a 2ème form, j'initialise des variables.
    Ma 2éme form étant déjà ouverte. C'est voulu.

    C'est ce code qui m'en empeche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Form titi = new  Form();
    Ya t-il une autre solution.

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 26
    Par défaut
    Tu ne peux pas passer une référence vers le form déjà ouvert?

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    c'est peut être due à la fatigue accumulée de la semaine, mais là j'ai du mal à voir où ce situe le problème ?

    l'art de se noyer dans un dés à coudre sans doute, mais là... euh ta exposé les faits d'une clarté, comment dire... obscure

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 31
    Par défaut
    Je ne sais pas. Comment sa une référence?
    Je me lance dans le C# alors je n'ai pas toute les bases.

    Peut tu me donner un exemple.

    Merci

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    On voit toujours les mêmes choses

    http://www.developpez.net/forums/d96...-methode-form/

    Je pense que c'est à peu près le même problème. Petit conseil buche un peu ton cour sur les objets. pour se poser de telles questions il te manque quelques connaissances.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 31
    Par défaut
    Aie je pensais bien que je m'exprimais mal. Désolé.

    Je reprend :

    J'ai une Form1 et une Form2. Mon application se lance, j'ouvre ma Form1. J'initialise mes variables et j'associe à certaines variables des caractéres.

    Ensuite avec un bouton j'ouvre m'a Form2. Puis maintenant je veux retourner sur ma Form1 toujours ouverte mais au niveau d'une fonction que j'appele dans la Form2.

    Si j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form1 titi = new  Form1();
    le programme va rééinitialiser mes variables. Et je ne veux pas. Je veux que le programme rentre directement dans la fonction appelée.

    J'espère que je m'exprime mieu.

    Comment faire ?

    (Lead8209 ton lien je ne comprend pas tout. Je pense que mon problème est différent mais je me trompe peut-être. Enfin ce soir je commence aussi à être un peu perdu. Fin de journée et fin de semaine ^^) En tous cas merci. )

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Dès que tu fait un new quelque chose dis toi que tu crée un nouvel objet.
    Donc si tu fait un new form_1 tu auras 2 form_1 en comptant celle du début.

    La solution simple lorsque tu ouvre ta 2ieme form avec un bouton de la 1ere tu cache la 1ere (.Hide()) et tu passe ton objet form_1 (this) vers ta form_2 ainsi depuis la form_2 tu pourras appeler les fonctions variables ...etc de ta 1ere form (la vrai 1ere pas une nouvelle).
    Regarde le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        private void Clic_BoutonOuvrir_Form_2(object sender, EventArgs e)
        {
            class_2 fenetre = new class_2(this) ; // une nouvelle form
            this.Hide(); //cache la form qui a le focus (form1)
            fenetre.ShowDialog(); //affiche la nouvelle form de facon modale -> le programme s'arrête sur cette ligne tant que l'objet form_2 est en vie
            this.Show(); //quand l'objet meurt on passe ici et on ré-affiche la form_1
        }
    Tu comprends ton erreur ?
    Pour fermer ta form_2 et revenir à ta form_1 tu met juste dans une fonction :

  8. #8
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut
    J'avoue que je ne comprends pas non plus la difficulté de la chose.

    Imaginons, on a Form1 qui se lance au démarrage de l'appli et il possède un bouton btnOpenForm qui ouvre le Form2 et btnDoAction qui lance une méthode du Form2

    Dans ton code de Form1, tu ajoutes la variable:
    Dans le code du bouton btnOpenForm tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    monForm2 = new Form2;
    monForm2.Show();
    /* ... */
    Et dans le code du btnDoAction tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    monForm2.maMethode();
    // Et là, ça lance la méthode sans créer un nouvel objet Form2
    Par contre, pense à faire des tests si l'objet est null...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 31
    Par défaut
    Merci à tous c'est bon j'ai compris . C'est ce "hide" que j'avais besoin. Parfait.

    Un grand merci et bon weekend a tous.

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

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. Appel d'une fonction dans une fonction (sql server 2005)
    Par catchouse dans le forum Développement
    Réponses: 10
    Dernier message: 06/05/2009, 12h03
  3. getattr() ? Appel d'une fonction depuis une fonction
    Par frites.saucisse dans le forum Général Python
    Réponses: 8
    Dernier message: 10/10/2008, 14h21
  4. Appeler une fonction dans une fonction
    Par bryanstaubin dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/06/2007, 09h39
  5. Réponses: 4
    Dernier message: 17/03/2004, 17h24

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