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 :

[c#] Utilisation mdi ?


Sujet :

C#

  1. #21
    Débutant
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Points : 219
    Points
    219
    Par défaut
    Selon toi, je devrai remplacer

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    //avant
     
     private void button_faconnage_Click(object sender, EventArgs e)
            {
                this.Enabled = false; // Met le formulaire en cours inactif
     
                Form_faconnage fa; // déclare
                fa = new Form_faconnage(); // constructeur
                fa.Owner = this;
                fa.ShowDialog(); // ouverture
     
            }
     
     
     
    //---------------------------------------------------------------------------------------------------
     
    //après
            private void button_faconnage_Click(object sender, EventArgs e)
            {
                string resultat = string.Empty;
                this.Enabled = false; // Met le formulaire en cours inactif
     
                Form_faconnage fa; // déclare
                fa = new Form_faconnage(); // constructeur
                if(fa.ShowDialog(this) == DialogResult.Ok) // ouverture (formulaire courant est sont owner)
    			{
                   resultat = fa.Resultat;
    			}
     
                this.Enabled = true;
            }
    et

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    // avant
     
            private void button_enregistrer_Click(object sender, EventArgs e)
            {
                // Détermine si un élément est coché
                if (checkedListBox_faconnage.CheckedItems.Count != 0)
                { 
                    for (int x = 0; x <= checkedListBox_faconnage.CheckedItems.Count - 1; x++)
                    {
                        _resultat = _resultat + checkedListBox_faconnage.CheckedItems[x].ToString() + "\n";
                    }
                }
     
                Form_commande frm = (Form_commande)this.Owner;
                frm.Resultat = _resultat;
                frm.Enabled = true;
                this.Close(); // ferme
            }
     
     
    //---------------------------------------------------------------------------------------------------
     
    // après		
    		private void button_enregistrer_Click(object sender, EventArgs e)
    		{
    		  // Détermine si un élément est coché
    		  if (checkedListBox_faconnage.CheckedItems.Count != 0)
    		  {
    			for (int x = 0; x <= checkedListBox_faconnage.CheckedItems.Count - 1; x++)
    			{
    			  _resultat = _resultat + checkedListBox_faconnage.CheckedItems[x].ToString() + "\n";
    			}
     
    			this.DialogResult = DialogResult.OK
    		}
    j'ai du mal a suivre...

  2. #22
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    tout le code est fait dans le formulaire parent.
    Tu lance le formulaire enfant, dès qu'il a fait tout ce qu'il voulait l'utilisateur clique sur ok et là tu traites la valeur resultat.
    S'il clique sur annuler tu traites pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            private void button_faconnage_Click(object sender, EventArgs e)
            {
                string resultat = string.Empty;//initialise la variable à retourner par le formulaire
                this.Enabled = false; // Met le formulaire en cours inactif
     
                Form_faconnage fa = new Form_faconnage(); // constructeur
                if(fa.ShowDialog(this) == DialogResult.Ok) // ouverture (formulaire courant est sont owner) et si tu click sur ok tu traites le résultat sinon tu fermes la fenetre et tu te casses
    	{
                   resultat = fa.Resultat;
    	}
                fa.Dispose();//libère la mémoire de la fenetre fermée
                this.Enabled = true;//active le formulaire parent
            }
    le code dans ton autre formulaire sera déjà lancé puisq'on fait un
    "if(fa.ShowDialog(this) == DialogResult.Ok)", ça veut dire qu'il va attendre que ton formulaire enfant se ferme pour continuer...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private void button_enregistrer_Click(object sender, EventArgs e)
    {
      // Détermine si un élément est coché
      if (checkedListBox_faconnage.CheckedItems.Count != 0)
      {
        for (int x = 0; x <= checkedListBox_faconnage.CheckedItems.Count - 1; x++)
        {
          _resultat = _resultat + checkedListBox_faconnage.CheckedItems[x].ToString() + "\n";
        }
      }
      this.DialogResult = DialogResult.OK;//envoi du dialogresult
      this.Close();//fermeture de la fenetre...
    }
    Dis moi si ça marche chez toi...

  3. #23
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    il y avait deux ou trois petits trucs que j'avais oublié...Mais ça devrait être bon

  4. #24
    Débutant
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Points : 219
    Points
    219
    Par défaut
    Erreur 1 'System.Windows.Forms.DialogResult' ne contient pas une définition pour 'Ok' et aucune méthode d'extension 'Ok' acceptant un premier argument de type 'System.Windows.Forms.DialogResult' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante*?)

  5. #25
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    c'est une blague???
    Tu met Ok en Majuscule... c'est à dire OK

  6. #26
    Débutant
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Points : 219
    Points
    219
    Par défaut
    ahh sa voulait dire sa le message !

  7. #27
    Débutant
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Points : 219
    Points
    219
    Par défaut
    dernier soucis !

    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
    24
     
    // commande.cs
     
            private string resultat;
            public string Resultat
            {
                get { return resultat; }
                set { resultat = value; }
            }
     
     
            private void button_faconnage_Click(object sender, EventArgs e)
            {
                string resultat = string.Empty;//initialise la variable à retourner par le formulaire
                this.Enabled = false; // Met le formulaire en cours inactif
     
                Form_faconnage fa = new Form_faconnage(); // constructeur
                if (fa.ShowDialog(this) == DialogResult.OK) // ouverture (formulaire courant est sont owner) et si tu click sur ok tu traites le résultat sinon tu fermes la fenetre et tu te casses
                {
                    resultat = fa.Resultat; // erreur ici !!!!!
                }
                fa.Dispose();//libère la mémoire de la fenetre fermée
                this.Enabled = true;//active le formulaire parent
            }
    message d'erreur sur Résultat:
    Erreur 1 'WindowsFormsApplication1.Form_faconnage' ne contient pas une définition pour 'Resultat' et aucune méthode d'extension 'Resultat' acceptant un premier argument de type 'WindowsFormsApplication1.Form_faconnage' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante*?)


    et sa je le laisse ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            private void Form_commande_Activated(object sender, EventArgs e)
            {
                textBox_faconnage.Text = resultat;
                textBox_faconnage.Visible = true;
            }
    merci de ton aide.

  8. #28
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    dans Form_faconnage, tu ajoutes le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    public string Resultat
    {
       get
       {
          return _resultat;
       }
    }
     
    et voila...

  9. #29
    Débutant
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Points : 219
    Points
    219
    Par défaut
    et je garde sa dans commande.cs ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            private string resultat;
            public string Resultat
            {
                get { return resultat; }
                set { resultat = value; }
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form_commande frm = (Form_commande)this.Owner;
    erreur:
    Impossible d'effectuer un cast d'un objet de type 'WindowsFormsApplication1.Form_app' en type 'WindowsFormsApplication1.Form_commande'.

  10. #30
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    deux choses, dans commande.cs si tu t'en sert pas tu peux le virer...
    et de deux, si tu as bien repris le code que je t'ai donné, il n'y a pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form_commande frm = (Form_commande)this.Owner;
    donc enlève cette ligne...

  11. #31
    Débutant
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Points : 219
    Points
    219
    Par défaut
    excuse mais le code provient de faconnage !

    voila un résumé des codes pour bien que tu comprennes:


    commande.cs
    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
    24
    25
    26
    27
    28
    29
    30
    31
     
            private string resultat;
            public string Resultat
            {
                get { return resultat; }
                set { resultat = value; }
            }
     
     
            private void button_faconnage_Click(object sender, EventArgs e)
            {
                string resultat = string.Empty;//initialise la variable à retourner par le formulaire
                this.Enabled = false; // Met le formulaire en cours inactif
     
                Form_faconnage fa = new Form_faconnage(); // constructeur
                if (fa.ShowDialog(this) == DialogResult.OK) 
                    // ouverture (formulaire courant est sont owner) et si tu click sur ok 
                    //tu traites le résultat sinon tu fermes la fenetre et tu te casses
                {
                    resultat = fa.Resultat;
                }
     
                fa.Dispose();//libère la mémoire de la fenetre fermée
                this.Enabled = true;//active le formulaire parent
            }
     
            private void Form_commande_Activated(object sender, EventArgs e)
            {
                textBox_faconnage.Text = resultat;
                textBox_faconnage.Visible = true;
            }
    faconnage.cs
    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
    24
    25
    26
    27
    28
    29
     
            string _resultat;
            public string Resultat
            {
                get
                {
                    return _resultat;
                }
            }
     
            private void Form_faconnage_FormClosing(object sender, FormClosingEventArgs e)
            {
                Form_commande frm = (Form_commande)this.Owner;
                frm.Enabled = true;
            }
     
            private void button_enregistrer_Click(object sender, EventArgs e)
            {
                // Détermine si un élément est coché
                if (checkedListBox_faconnage.CheckedItems.Count != 0)
                {
                    for (int x = 0; x <= checkedListBox_faconnage.CheckedItems.Count - 1; x++)
                    {
                        _resultat = _resultat + checkedListBox_faconnage.CheckedItems[x].ToString() + "\n";
                    }
                }
                this.DialogResult = DialogResult.OK;//envoi du dialogresult
                this.Close();//fermeture de la fenetre...
            }

  12. #32
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    dans façonnage.cs
    enlève moi ces deux lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Form_commande frm = (Form_commande)this.Owner;
    frm.Enabled = true;
    qui sont dans l'évènement Form_faconnage_FormClosing, tu en as pas besoin...
    Et mon grand, il va falloir commençer à comprendre ce que tu fais, parce que je vais pas tout te faire...

  13. #33
    Débutant
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Points : 219
    Points
    219
    Par défaut
    je suis tout a fait d'accord avec toi mais je suis bloqué je ne comprends pas comment je peux afficher le résultat, en voyant la solution j'apprendrai par la suite, je suis bloqué sur ce probleme depuis 2 semaines, j'avais essayé d'avoir de l'aide sur un autre forum mais sans succès. jsuis un peu perdu désolé je débute.

    j'ai enlevé les deux lignes, sinon j'ai testé après mon résultat ne s'affiche toujours pas :/

  14. #34
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    il va pas s'afficher puisque tu récupère le résultat du formulaire précédent mais tu n'en fais rien...
    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
     
    private void button_faconnage_Click(object sender, EventArgs e)
            {
                string resultat = string.Empty;//initialise la variable à retourner par le formulaire
                this.Enabled = false; // Met le formulaire en cours inactif
     
                Form_faconnage fa = new Form_faconnage(); // constructeur
                if (fa.ShowDialog(this) == DialogResult.OK) 
                    // ouverture (formulaire courant est sont owner) et si tu click sur ok 
                    //tu traites le résultat sinon tu fermes la fenetre et tu te casses
                {
                    resultat = fa.Resultat;
                }
     
    //Insère ici le code pour faire afficher le résultat exmple
    //textbox1.Text = resultat;
    //mais seulement après avoir créé un textbox qui s'appelle textbox1...
     
                fa.Dispose();//libère la mémoire de la fenetre fermée
                this.Enabled = true;//active le formulaire parent
            }

    je pense que là tu as tous pour réussir et que tu devrait mettre au prochain poste, sinon je te conseil de lire :

    C# pour les nuls
    Programmation Orientée Objet pour les nuls
    Programmer des WinForms pour les nuls

  15. #35
    Débutant
    Profil pro
    Inscrit en
    Février 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 625
    Points : 219
    Points
    219
    Par défaut
    merci de ton aide et de ta patience, j'étais resté bloqué sur....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            private void Form_commande_Activated(object sender, EventArgs e)
            {
                textBox_faconnage.Text = resultat;
                textBox_faconnage.Visible = true;
            }
     
    en faite fallait le mettre comme tu me dit en haut après le if !
    j'ai lu pas mal de cours la dessus, merci a toi

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Utilisation des MDI
    Par Jiyuu dans le forum wxPython
    Réponses: 3
    Dernier message: 17/09/2008, 07h30
  2. [MDI] A quel endroit utilise-t-on Dispose() ?
    Par freud dans le forum Windows Forms
    Réponses: 7
    Dernier message: 05/11/2007, 13h45
  3. Utiliser une seule barre de menu en MDI
    Par PetitPapaNoël dans le forum MFC
    Réponses: 22
    Dernier message: 06/03/2007, 09h24
  4. Utiliser un ascenseur pour une application MDI
    Par kurkaine dans le forum C++Builder
    Réponses: 6
    Dernier message: 27/09/2006, 13h54
  5. Meilleure solutions MDI et utilisation base de données.
    Par Max Bernaert dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/09/2006, 10h55

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