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

Développement Windows Discussion :

ré-exécuter FORM plusieurs fois depuis autre FORM C#


Sujet :

Développement Windows

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 23
    Points : 28
    Points
    28
    Par défaut ré-exécuter FORM plusieurs fois depuis autre FORM C#
    Bonjour,

    j'ai un problème de ré-exécuter une FORM plusieurs fois...

    1) Premier FORM 'FormGroupe':

    Nom : Groupe.PNG
Affichages : 190
Taille : 21,9 Ko


    * Premier FORM pour saisir le nombre de répétitions , dans le textBox 'Nombre de Groupe'
    * en cliquant sur le Bouton Valider, l'autre FORM s'afiche

    2) Deuxieme FORM'FormPRINCIPAL' :
    Nom : princeip.PNG
Affichages : 190
Taille : 99,7 Ko

    je VEUX que cette Deuxieme FORM ré-exécuter suivant le nombre (par exemple 5 fois)


    int compteur = int.Parse(textBoxtest.Text); (textBoxtest : c'est le nombre de repetitions)


    j'essaye vec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    int ij=1;
    Traitement normal de mon application.....
     
     do
                {
                    FormPRINCIPAL   ff = new FormPRINCIPAL();
                    ff.Show();
     
                    ij++;
                } while (ij <= compteur);
    Mais toujours aucune resultat juste!!!
    j'obtient par exemple 5 fois FormPRINCIPAL s'affichant au même temps!! et donc Crache de mon application

    Merci d'avance,

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    il faut utiliser la méthode ShowDialog() plutôt que Show().
    Petite remarque : il serait peut-être plus performant de n'instancier qu'une Form et de la ShowDialoguer x fois.

    Bon dev.
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 23
    Points : 28
    Points
    28
    Par défaut
    j'ai changé avec for:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MainForm fffffg; 
                for (int iff = 1; iff <= 3; iff++)
                {
                    fffffg = new MainForm();
                    fffffg.ShowDialog();               
     
                }
    mais maintenant, j'ai boucle infinie!!
    je sais pas pourquoi?

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Alors je parlais d'instanciation unique (quand tu fais le new), pas de déclaration unique, passons
    Pour ta boucle infinie alors là c'est juste la blackmagic ... rien dans ta boucle ne laisse supposer un tel comportement.
    Quand tu lances ce programme, que tu fermes 3x ta Form fffffg, elle réapparait une 4ème fois ?
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 23
    Points : 28
    Points
    28
    Par défaut
    je fais imprime ecran ,

    Nom : Sans titre.png
Affichages : 216
Taille : 295,5 Ko


    vous voyez 'CheckIn C-BW' en bas , chaque fois en cliquant sur Bouton Valider , j'obtient nouveau Form 'CheckIn C-BW' ....boucle infine!

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Ce comportement n'est pas normal, qu'as-tu comme code dans l'event "valider" de ce deuxième Form ?
    M'est avis que c'est là-dedans qu'il traine un truc pas net.

    Pour exemple, un code qui fonctionne comme souhaité chez moi (placé dans l'event d'un bouton d'un autre Form) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // j'instancie mon Form2
    Form2 frm = new Form2();
    // je boucle 3x
    for (int i = 0; i < 3; i++)
    	// j'affiche mon frm de manière modale
    	frm.ShowDialog();
    // j'affiche un tit message pour dire que c'est torché
    MessageBox.Show("done");
    Plus je connais de langages, plus j'aime le C.

  7. #7
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour

    Ton Deuxieme FORM'FormPRINCIPAL doit être ajuste comme un Form modal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
            this.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedDialog;
            this.AcceptButton = btnValider;
     
     
           private void btnValider(object sender, System.EventArgs e) 
     
          {  
                     this.Close();
     
     
          }
    Le this.Close () "cache" un Form mais ne le "tue pas" ,et donc ton Form(FORM'FormPRINCIPAL ) doit être instancie en portée de class du 1er Form comme dit par jopomok ....!!!
    bon code....

Discussions similaires

  1. [Débutant] Exécuter méthode à partir d'un autre form
    Par KaloOopS dans le forum C#
    Réponses: 4
    Dernier message: 15/09/2012, 22h43
  2. bouton entree plusieurs fois sur un form
    Par lili2704 dans le forum Struts 1
    Réponses: 5
    Dernier message: 29/06/2007, 14h19
  3. Réponses: 2
    Dernier message: 22/05/2006, 14h08
  4. Réponses: 4
    Dernier message: 21/04/2006, 22h08
  5. [C#] appeler Close() d'un form à partir d'un autre form
    Par vvvvv dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/02/2006, 18h36

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