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

Windows Forms Discussion :

[C#]Faire "voyager" des données d'un form à un autre


Sujet :

Windows Forms

  1. #1
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut [C#]Faire "voyager" des données d'un form à un autre
    Bonjour à tous,

    Voilà je me demandais comment faire "voyager" des données d'un form à un autre ?

    Par exemple, j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void bt_suite_Click(object sender, EventArgs e)
    {
        Part2 f2 = new Part2();
        f2.Show();
    }
    Et je voudrais, dans mon f2, utiliser f2.height pour redimensionner ma fenêtre au fur et à mesure que l'utilisateur rempli des champs, mais ça ne marche pas.

    Quelqu'un saurait-il SVP ?

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Points : 144
    Points
    144
    Par défaut
    Quelle est la fenêtre que tu veux redimensionner?

    Part f2 ou la fenêtre parent?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Points : 369
    Points
    369
    Par défaut
    Si c'est de la form parent vers form enfant tu peux utiliser une méthode et dans le sens inverse un événement!

  4. #4
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    Je veux redimensionner f2, qui est donc mon deuxième form.

    Dans mon f2, l'utilisateur doit sélectionner une phrase dans des comboBox, et à chaque fois qu'il utilise un comboBox, un autre apparait juste en dessous, et donc au bout d'un moment mon form ne sera pas assez grand pour tout contenir (je fais donc mon form assez petit au départ au cas où l'utilisateur n'ai besoin que de quelques comboBox).

    Donc dans l'événement SelectedIdexChanged de mes comboBox, je veux modifier le height de mon f2 et je ne sais pas comment faire.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Points : 369
    Points
    369
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    f2.Height += uneValeur;
    ça marche pas???

  6. #6
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    Non car ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void bt_suite_Click(object sender, EventArgs e)
    {
        Part2 f2 = new Part2();
        f2.Show();
    }
    est situé dans mon form.cs sur l'évenement Click du d'un bouton.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Points : 369
    Points
    369
    Par défaut
    Mais tu fais bien apparaitre tes combos dans le code de f2 non?

    Si oui je ne vois pas pourquoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.Height+= uneValeure;
    juste avant de faire apparaitre une de tes combos ne marcherait pas!

  8. #8
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    Euh, alors je sais pas ce qu'il se passe mais maintenant ça marche xD.

    Merci bien !

    Maintenant une autre question :

    J'ai 3 form en tout, et je compte faire un 4ème formulaire dans lequel on verra toutes les informations saisies dans les précédents form, comment je fais voyager mes données ?

    Merci par avance.

  9. #9
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Points : 144
    Points
    144
    Par défaut
    Pour que tes données puissent voyager (elles en ont de la chance), il faut que tu les rendes accessibles.

    Soit via un accès public,
    Soit par un accesseur (get) public.

  10. #10
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 33
    Points : 33
    Points
    33
    Par défaut
    Pour que tes données puissent voyager (elles en ont de la chance), il faut que tu les rendes accessibles.

    Soit via un accès public,
    Soit par un accesseur (get) public.
    absolument, pense aussi au Static

  11. #11
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    Hum, merci j'ai compris ce qu'il faut faire...

    Mais euh, comment on fait ? xD

    J'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public static string text_dangers_1;
     
    private void tb_dangers_1_TextChanged(object sender, EventArgs e)
    {
        text_dangers_1 = tb_dangers_1.Text;
    }
    Qui se trouve dans mon form2, et dans mon form 3 j'ai mis un label et je voudrais que ce label se remplisse avec les données que mon text_dangers_1 reçoit, comment je m'y prends ?

    Par avance, merci.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Points : 369
    Points
    369
    Par défaut
    ça m'a l'air très procédurale pour un prog' c#!

    pour aller chercher ta variable ceci devrait fonctionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form2.text_dangers_1;

  13. #13
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    Procédurale ? lol

    J'ai pas une seule fonction dans cette appli' ^^

    Mais merci pour les renseignements !

    Ça marche niquel

    Merci à tous !

  14. #14
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    Une autre question qui me turlupine, pour rendre publique l'accès à des images d'un certain form (images séléctionnées via un comboBox), j'ai procédé de cette manière :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    // Variable publique pour que l'image sélectionnée soient accessibles sur les autres form.
    public static Image picto_danger_1;
     
    private void cb_picto_1_SelectedIndexChanged(object sender, EventArgs e)
    {
        // Permet d'afficher le pictogramme correspondant à la définition séléctionnée.
        switch (cb_picto_1.SelectedIndex)
        {
            case 0:
                pb_picto_1.Image = il_picto_dangers.Images[0];
                cb_picto_2.Visible = true;
                break;
     
            case 1:
                pb_picto_1.Image = il_picto_dangers.Images[1];
                cb_picto_2.Visible = true;
                break;
     
            case 2:
                pb_picto_1.Image = il_picto_dangers.Images[2];
                cb_picto_2.Visible = true;
                break;
     
            case 3:
                pb_picto_1.Image = il_picto_dangers.Images[2];
                cb_picto_2.Visible = true;
                break;
     
            case 4:
                pb_picto_1.Image = il_picto_dangers.Images[3];
                cb_picto_2.Visible = true;
                break;
     
            case 5:
                pb_picto_1.Image = il_picto_dangers.Images[4];
                cb_picto_2.Visible = true;
                break;
     
            case 6:
                pb_picto_1.Image = il_picto_dangers.Images[5];
                cb_picto_2.Visible = true;
                break;
     
            case 7:
                pb_picto_1.Image = il_picto_dangers.Images[5];
                cb_picto_2.Visible = true;
                break;
     
            case 8:
                pb_picto_1.Image = il_picto_dangers.Images[6];
                cb_picto_2.Visible = true;
                break;
     
            case 9:
                pb_picto_1.Image = il_picto_dangers.Images[6];
                cb_picto_2.Visible = true;
                break;
        }
     
        // La variable reçoit le pictogramme correspondant à l'index séléctioné.
        picto_danger_1 = pb_picto_1.Image;
    }
    Comme vous le voyez, je laisse des commentaires au cas où un futur développeur passerait derrière moi pour retoucher l'appli' (sans blague ?) et dans ces commentaires j'appelle picto_danger_1 une "variable", et je voulais savoir en fait le nom exact de ce truc (une méthode, une classe ou je ne sais quoi) et je voulais également savoir si ma façon de procéder est bonne pratique...

    Merci d'avance.

  15. #15
    Membre régulier Avatar de Roach-
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 108
    Points
    108
    Par défaut
    Voici ma façon de faire pour faire suivre des donnée d'un form a un autre.

    Form1 = Formulaire Parent
    From2 = Formulaire Enfant

    Dans le Form2 tu te fait une method que tu appel depuis ton Form1.

    Mise en situation :

    Tu possède une liste d'ami dans un datagridview lorsque l'utilisateur sélectionne une personne (ca peut etre un evenement de click ou un bouton a part) il faut afficher les info de cette personne.

    Donc dans la form2 tu fait un methos dans ce genre la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public void ShowInfo(string Nom)
    {
    textboxNom.Text = Nom;
    this.Showdialog()
    }
    Dans la form1 tu appel ta method de la form2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Form2 f = new Form2();
    f.ShowInfo("Denis");
    Dans ta form2 ton textboxNom aura comme contenu Denis.

    Maintenant tu peux appliquer cela de plusieurs facon avec plusieurs type de control. Ca te permet de passer une valeur d'un form a l'autre.

    Tu peux utiliser show ou showdialog pour un afficher modale ou non modale.
    Roach aka Jean-François Dufour

  16. #16
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    Merci roach, mais j'avais déjà utilisé une autre méthode pour faire passer mes données (je les mets dans des public static string).

    Nan par contre si on pouvait me donner la réponse à ma question qui se trouve juste avant la réponse de roach ça serait sympas.

    Merci.

  17. #17
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    Personne ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/10/2008, 13h32

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