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 :

transmettre une variable d'une fenetre a une autre


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Points : 20
    Points
    20
    Par défaut transmettre une variable d'une fenetre a une autre
    salut,
    je debute en C#, j'ai créé une fenetre WPF ou je dois afficher des resultats dans un tableau, et comme jai pas su comment faire pour inserer une dataGridView jai eu l'idée de l'afficher dans une autre fenetre windowsForm! mai le probleme c'est que je ne sais pas comment trnasmetre les variables de la premiere fenetre a la deuxieme !
    jai essayé de faire comme suite :
    dans la premiere fenetre (wpf)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public int i;
    private void OK_clik(object sender, RoutedEventArgs e)
    {
                     form1 myForm = new form1();
                     myForm.show();
                     i=int.parse(textBox1.Text);
    }
    dans la seconde fenetre (windows form)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Form2_Load(object sender, EventArgs e)
            {
                Window1 b = new Window1();
                dataGridView1.ColumnCount = b.i; 
     
            }
    comment faire transmettre la variable i :s :s ????

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par tix116 Voir le message
    jai pas su comment faire pour inserer une dataGridView
    Il y a un composant DataGrid pour WPF dans le WPF Toolkit

    Si tu préfères continuer avec un DataGridView, ta méthode est à peu près correcte, mais il faut affecter une valeur à i avant d'afficher l'autre fenêtre...

    Sinon, tu peux aussi utiliser un contrôle WindowsFormsHost dans ta fenêtre WPF pour y mettre des contrôles Windows Forms.

    Mais bon, de toutes façons il vaudrait mieux utiliser le DataGrid WPF...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Points : 20
    Points
    20
    Par défaut
    fallait que je mette
    public STATIC int i;
    private void OK_clik(object sender, RoutedEventArgs e)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {
                     form1 myForm = new form1();
      i=int.parse(textBox1.Text);
                     myForm.show();
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Form2_Load(object sender, EventArgs e)
            {
                Window1 b = new Window1();
                dataGridView1.ColumnCount = NomDeMafenetre.i; 
     
            }

    merci bcp pr ton aide, jai essayé avec les solutions que tu m'a proposé mais faute de temps je prefere utilisé ce truc la; merci encore

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Si tu préfères continuer avec un DataGridView, ta méthode est à peu près correcte, mais il faut affecter une valeur à i avant d'afficher l'autre fenêtre...
    Aie... je devais être bien fatigué hier soir pour dire une c****rie pareille... en fait ta méthode n'est pas du tout correcte

    Ca n'a pas de sens de créer une nouvelle instance de Window1 ! tu en as déjà une, celle où tu as saisi l'information dont tu as besoin. La nouvelle fenêtre que tu crées dans Form2_Load n'a pas cette information...
    Quand au fait de déclarer la variable i comme static, c'est juste une rustine pour régler ton problème... static, ça veut dire que i est commune à toutes les instances de Window1 (d'ailleurs, pas la peine de créer une instance de Window1 pour y accéder, tu peux faire directement Window1.i). Mais de toutes façons, ce n'est pas une bonne solution, parce que jour où tu vas avoir besoin d'une 2e instance de Window1 tu seras coincé.

    Le mieux serait de mettre une propriété publique dans Form2, que tu affectes à partir de Window1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public int ColumnCount { get; set; }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void OK_Click(object sender, RoutedEventArgs e)
    {
                     Form2 myForm = new Form2();
                     myForm.ColumnCount = int.parse(textBox1.Text);
                     myForm.Show();
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Form2_Load(object sender, EventArgs e)
            {
                dataGridView1.ColumnCount = this.ColumnCount; 
            }

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

Discussions similaires

  1. Récupération de la valeur d une variable elle même contenue dans une variable
    Par guiplongeur dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 16/03/2015, 16h23
  2. Mettre une variable dans l'appel d'une variable de session
    Par PrinceMaster77 dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2011, 10h12
  3. Réponses: 9
    Dernier message: 05/11/2008, 09h37
  4. Réponses: 1
    Dernier message: 17/01/2007, 21h52
  5. Réponses: 7
    Dernier message: 13/03/2006, 15h39

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