none
Lien entre deux formulaires RRS feed

  • Question

  • Bonjour,

    voila la situation : 

    J'ai un formulaire avec deux boutons.

    Quand je clique sur le bouton 1, j'ouvre un formulaire avec une textbox.

    Quand je clique sur le bouton 2, j'ouvre le même formulaire sauf qu'à la place de la textbox, j'aimerais que ce soit une ComboBox

    Mais je ne sais pas comment faire passer l'information à mon deuxième formulaire pour qu'il affiche la ComboBox si c'est le bouton 2 qui a lancé l'evenement.

    Merci d'avance.

    mercredi 15 février 2012 10:52

Réponses

  • Bonjour,

    Une solution pourrait consister en les actions suivantes, pour passer l'information à votre formulaire 2 :

    • Ajouter une properiété ActionType de type int à votre deuxième formulaire :
            private int _actionType;
            public int ActionType
            {
                get
                {
                    return this._actionType;
                }
                set
                {
                    this._actionType = value;
    
                    this.[Nom de votre TextBox].Visible = this._actionType == 1;
                    this.[Nom de votre ComboBox].Visible = this._actionType == 2;
                }
            }
    • Dans le gestionnaire du click de votre button 1, mettre la properiète ActionType de votre formulaire 2 à 1 juste avant de l'afficher.
    • Dans le gestionnaire du click de votre button 2, mettre la properiète ActionType de votre formulaire 2 à 2 juste avant de l'afficher.

    D'une manière général, les properiétés d'un objet décrivent son état. Dans autre cas note formulaire 2 à deux états, de notre point de vue. Il est donc normal de lui introduire un membre décarivant l'état.

    Cordialement.


    • Modifié Ould MouradEditor mercredi 15 février 2012 12:40
    • Marqué comme réponse Kismi mercredi 15 février 2012 14:29
    mercredi 15 février 2012 12:40
    Auteur de réponse
  • J'ai changé le code par celui-ci :

            private void BtnSuivant2_Click(object sender, EventArgs e)
            {
                //new FormAjouterDemande3().ShowDialog(this);
                FormAjouterDemande3 Form3 = new FormAjouterDemande3();
                Form3.ActionType = 2;
                Form3.ShowDialog(this);
            }

    Mes deux boutons avaient le même évenement ^^

    j'en ai donc créé un autre en changeant l'ActionType.

    Ca marche super,

    merci !

    • Marqué comme réponse Kismi mercredi 15 février 2012 14:29
    mercredi 15 février 2012 14:29

Toutes les réponses

  • Bonjour,

    Une solution pourrait consister en les actions suivantes, pour passer l'information à votre formulaire 2 :

    • Ajouter une properiété ActionType de type int à votre deuxième formulaire :
            private int _actionType;
            public int ActionType
            {
                get
                {
                    return this._actionType;
                }
                set
                {
                    this._actionType = value;
    
                    this.[Nom de votre TextBox].Visible = this._actionType == 1;
                    this.[Nom de votre ComboBox].Visible = this._actionType == 2;
                }
            }
    • Dans le gestionnaire du click de votre button 1, mettre la properiète ActionType de votre formulaire 2 à 1 juste avant de l'afficher.
    • Dans le gestionnaire du click de votre button 2, mettre la properiète ActionType de votre formulaire 2 à 2 juste avant de l'afficher.

    D'une manière général, les properiétés d'un objet décrivent son état. Dans autre cas note formulaire 2 à deux états, de notre point de vue. Il est donc normal de lui introduire un membre décarivant l'état.

    Cordialement.


    • Modifié Ould MouradEditor mercredi 15 février 2012 12:40
    • Marqué comme réponse Kismi mercredi 15 février 2012 14:29
    mercredi 15 février 2012 12:40
    Auteur de réponse
  • Merci de ta réponse

    Cependant je ne suis pas sûr d'avoir compris, comment puis-je avoir accès à la propriété ActionType depuis mon formulaire 1 ?

    mercredi 15 février 2012 13:04
  • Bonjour, 

    Faite l'instruction suivante : [formulaire 2].ActionType = 1;

    Sinon pouvez vous s'il vous plaît nous poster votre bloque de code qui permet l'affichage du formulaire 2 ?

    Cordialement.

    mercredi 15 février 2012 14:12
    Auteur de réponse
  •         public void BtnSuivant2_Click(object sender, EventArgs e)
            {
                new FormAjouterDemande3().ShowDialog(this);
            }

    Voila, juste l'appel de mon formulaire via le bouton 2, il existe aussi un bouton 1 mais dans un groupbox different ^^
    mercredi 15 février 2012 14:19
  • J'ai changé le code par celui-ci :

            private void BtnSuivant2_Click(object sender, EventArgs e)
            {
                //new FormAjouterDemande3().ShowDialog(this);
                FormAjouterDemande3 Form3 = new FormAjouterDemande3();
                Form3.ActionType = 2;
                Form3.ShowDialog(this);
            }

    Mes deux boutons avaient le même évenement ^^

    j'en ai donc créé un autre en changeant l'ActionType.

    Ca marche super,

    merci !

    • Marqué comme réponse Kismi mercredi 15 février 2012 14:29
    mercredi 15 février 2012 14:29