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 :

fonction si form fille disposed


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Par défaut fonction si form fille disposed
    Bonjour


    Dans une form mère, j'affiche des infos dans diverses combobox (via ma bdd).

    J'ai la possibilité (via un bouton) d'ouvrir une form permettant d'ajouter dans ma bdd une nouvelle entrée.


    j'aimerai que mes combobox de ma form principale se rafraichissent (reexecuter mes fonctions de remplissage donc) lorsque je ferme la form "fille".


    Le probleme : le code ecrit après le formFille.show() continue de s'executer. L'ideal aurait été une pause du code le temps que la fille n'est pas disposed.

    Mais je trouve que faire "while(!formFille.isDisposed){}" c'est hyper crade et risqué!

    voici mon code :

    Form principale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    addAut newAuteur = new addAut();
    newAuteur.Show();
    mesMethodes.fillAuteur(cbxAuteur); mesMethodes.fillDessinateur(cbxDessinateur);
    form addAut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private void btnAddAuteur_Click(object sender, EventArgs e)
    {
        methodes mesMethodes = new methodes();
     
        if(!mesMethodes.addAuteurManga(txtNom.Text, txtPrenom.Text, chkIsAuteur.Checked, chkIsDessinateur.Checked))
        {
            MessageBox.Show("Création de l'auteur " + txtNom.Text + " " + txtPrenom.Text + " échouée","Echec",MessageBoxButtons.OK,MessageBoxIcon.Error);
        }
        else
        {
            this.Dispose();
        }
    }


    J'ai également tenté d'appeler les fonctions fillAuteur/fillDessinateur juste avant le this.Dispose();, mais les combobox ne sont pas reconnues. Et en cherchant avec l'intellisense dans cette form, j'ai pas trouvé l'équivalent asp.net de "FindControl" qui m'aurait permis de faire this.parent.findcontrol(.....)


    Je ne suis VRAIMENT pas familier avec la notion d'évènement, donc j'espère que c'est pas comme ca qu'il faut faire ^^"""

    D'avance merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Utilise ShowDialog, ça bloque jusqu'à la fermeture de la fenêtre. C'est fait pour afficher des fenêtres modales

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    addAut newAuteur = new addAut();
    if (newAuteur.ShowDialog() == DialogResult.OK)
    {
        mesMethodes.fillAuteur(cbxAuteur);
        mesMethodes.fillDessinateur(cbxDessinateur);
    }

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    ah !
    J'aurai du lire ce post en premier avant de te répondre sur ton autre topic

    Réponse croisée: non ca n'est pas un bug win7/64


    fais ca :
    • à toi de créer FormChild.Init pour finir de la préparer (oublie Form.Load avec un hide dedans (cf ton autre topic))
    • à toi de rendre result publique dans FormChild pour queFormPapa puisse récupérer ce qu'à saisi l'utilisateur.
    • Tu dois enfin dans FormChild Placer un bouton Ok, lui mettre via le designer => propriétés du bouton: DialogResult à OK, et son OnClick fait un this.Close()


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
         this._formchild =  new _formchild();
         this._formchild.Init("Billou","Serveur1");
         if(_formchild.ShowDialog() == DialogResult.OK)
        {
                this.MotDePasse = _formchild.result;
                this.Bdd.Connect("Billou",this.MotDePasse);
        }
    }

  4. #4
    Membre averti
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Par défaut
    Citation Envoyé par giova_fr Voir le message
    ah !
    J'aurai du lire ce post en premier avant de te répondre sur ton autre topic

    Réponse croisée: non ca n'est pas un bug win7/64

    J'ai pas créé d'autre topic ^^'' tu te trompes de personne je pense :p


    Merci pour vos réponse en tout cas! Effectivement, j'connaissais pas showDialog !



    Par contre, si j'mets ta proposition tom, ca se bloque bien dans la condition du if, mais en sortie de la form "fille", ca rentre pas dans le if, avec result a none.


    Du coup, j'le fais passer comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    newAuteur.ShowDialog();
    mesMethodes.fillAuteur(cbxAuteur);
    mesMethodes.fillDessinateur(cbxDessinateur);

    peut etre dois-je indiquer quelque chose dans la forme fille avant le this.dispose?

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    autant pour moi.

    Sinon pour ton if.
    il faut (si tu veux gerer la notion "OK" "Annuler")
    que tu rajoute un bouton a ta form fille.
    Tu fixe sa propriété "DialogResult" sur OK
    Tu double clic sur ce bouton dans le designer, et dans sa methode, tu ecris this.close();

    Si l'utilisateur clic sur le bouton, ton if sera vrai
    si il clique sur la croix rouge, le if sera faux

  6. #6
    Membre averti
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Par défaut
    Merci beaucoup


    Probleme résolu

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/02/2008, 09h55
  2. Réponses: 7
    Dernier message: 27/07/2006, 23h09
  3. [C#] Problème de requetes en Sql dans une form fille
    Par padodanle51 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/05/2006, 11h32
  4. Réponses: 3
    Dernier message: 13/01/2006, 10h49
  5. [MDI] Comment charger une Form fille au démarrage ?
    Par Benjamin GAGNEUX dans le forum Composants VCL
    Réponses: 13
    Dernier message: 03/07/2004, 12h40

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