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#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    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
    Par défaut [c#] Utilisation mdi ?
    Bonjour à vous tous....

    j'ai un formulaire A qui ouvre un formulaire B a partir d'un bouton.
    ce formulaire B pendant quil est ouvert désactive ler 1er formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        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.ShowDialog(); // ouverture
            }
    ensuite lorsqu'on a choisi dans une listbox ce qui nous interessé, on clique sur un bouton, l'objectif est de fermer la fenetre en cours de passer en parametre les valeurs et puis surtout de remettre le formulaire A actif:

    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
     
            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 fa;
                    fa = MdiParent // MARCHE PAS, je ne sais pas quoi mettre, pour retrouver mon formulaire en cours.
     
                    if (fa.ShowDialog(this) == DialogResult.OK)
                    {
                        fa.Enabled = true;                    
                    }                
                }
     
                this.Close(); // ferme
            }
    comment faire en sorte que _resultat dans le formulaire B transmette les infos dans le formulaire A

    merci de m'aider car je lutte depuis un bon moment...

  2. #2
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    ajoute dans la form A la proprieté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    private int resultat;
    public int Resultat
    {
          get { return resultat; }
          set { resultat = value; }
    }
    et dans votre code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     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
            }
    et dans le code de la form Form_faconnage ajoute :
    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
    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 fa;
                    fa = MdiParent // MARCHE PAS, je ne sais pas quoi mettre, pour retrouver mon formulaire en cours.
     
                    if (fa.ShowDialog(this) == DialogResult.OK)
                    {
                        fa.Enabled = true;                    
                    }                
                }
                FormA frm = (FormA )this.Owner;
                frm.Resultat = _resultat;            
                this.Close(); // ferme
            }
    enfin dans la form FormA vous pouvez utiliser l'evennement Activated pour le traitement de la variable ainsi recuperer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void FormA_Activated(object sender, EventArgs e)
            {
                //Traitement de la variable _Resultat exemple :
                MessageBox.Show(this.resultat.ToString());
            }
    j'espere que ce code t'aide

  3. #3
    Membre éclairé
    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
    Par défaut
    ok, merci je viens de comprendre cependant je n'arrive pas a mettre mon résultat dans l'autre formulaire ? l'affiche dans une listbox ou un textbox..

    Pourquoi ceci ne marche 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 string resultat;
            public string Resultat
            {
                get { return resultat; }
                set { resultat = value; }
            }
     
     
            private void Form_commande_Activated(object sender, EventArgs e)
            {
                textBox_faconnage.Text = resultat;
            }

  4. #4
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Les formulaires MDI (Multiple Document Interface) sont des formulaires conteneur d’autres formulaires, et si votre application ne contient pas une feuille MDI vous ferez mieux d’éliminer ce segment de code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Form_commande fa;
    fa = MdiParent 
    Et pour savoir plus sur Les MDIForms visite ce lien

  5. #5
    Membre éclairé
    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
    Par défaut
    oui merci j'ai résolu ce soucis, maintenant je n'arrive pas a récupérer le résultat pour l'afficher...

  6. #6
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    pourrez vous publier le code de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private void button_enregistrer_Click(object sender, EventArgs e)

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

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