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 :

un fichier .cs qui me fait mal a la tete


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Points : 45
    Points
    45
    Par défaut un fichier .cs qui me fait mal a la tete
    bonjour
    sous un projet Winform C#
    j'ai créer un nouveau fichier .cs (histoire de organisé mon travail)

    voici le code de mon fichier .cs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class Class1
        {
            public void myfunction(string jaja)
            {
     
                Form1 dans_mon_nouveau_fichier_cs = new Form1();
                dans_mon_nouveau_fichier_cs.label1.Text = jaja;
                MessageBox.Show(System.Convert.ToString(jaja));
                dans_mon_nouveau_fichier_cs.label1.Update();
            }
    dans une bouton dans la form j'ai fait ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          private void button1_Click(object sender, EventArgs e)
            {
                Class1 s = new Class1();
                s.myfunction("maman");
            }
    mon probleme c'est que label1 ne change pas le text alors que dans Message box je vois bien ma valeur string (maman).

    pourquoi label1 veut pas changer le text ?

    merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form1 dans_mon_nouveau_fichier_cs = new Form1();
    Ce code initialise une nouvelle Form1 ... et ne référence donc pas la Form1 qui est déjà affichée et sur laquelle tu souhaites modifier le label1.

    Je pense que le problème vient de là : mauvaise compréhension de la notion d'objet et de référence.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Points : 45
    Points
    45
    Par défaut
    hmm et que dois je faire ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Modifier la signature de la fonction "myfunction" pour pouvoir passer en paramètre le formulaire (de type Form1) sur lequel tu souhaites modifier le label1 et modifier en conséquence l'appel depuis "button1_Click".

  5. #5
    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
    sois tu envoie en paramètre ton objet form1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class Class1
        {
            public void myfunction(string jaja, Form1 myForm)
            {
               myForm.label1.Text = jaja;//label1 est certainement déclaré private sauf si tu l'as modifié donc cette ligne devrait pas fonctionner
                MessageBox.Show(jaja);//pas besoin de conversion, jaja est un string!
            }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            private void button1_Click(object sender, EventArgs e)
            {
                Class1 s = new Class1();
                using (Form1 f = new Form1())
                {
                   s.myfunction("maman", f);
                   f.ShowDialog();               
                }
            }
    On peux pas t'aider plus sans comprendre ce que tu veux faire

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Citation Envoyé par sisqo60 Voir le message
    sois tu envoie en paramètre ton objet form1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class Class1
        {
            public void myfunction(string jaja, Form1 myForm)
            {
               myForm.label1.Text = jaja;//label1 est certainement déclaré private sauf si tu l'as modifié donc cette ligne devrait pas fonctionner
                MessageBox.Show(jaja);//pas besoin de conversion, jaja est un string!
            }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            private void button1_Click(object sender, EventArgs e)
            {
                Class1 s = new Class1();
                using (Form1 f = new Form1())
                {
                   s.myfunction("maman", f);
                   f.ShowDialog();               
                }
            }
    On peux pas t'aider plus sans comprendre ce que tu veux faire
    En fait, il veut modifier le label1 du formulaire courant (sur lequel il y a button1_Click) j'ai l'impression.

    C'est pourquoi ton code risque de ne pas l'aider parce qu'en définitive, il fait la même chose que son code.

  7. #7
    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
    Citation Envoyé par Kaidan Voir le message
    En fait, il veut modifier le label1 du formulaire courant (sur lequel il y a button1_Click) j'ai l'impression.

    C'est pourquoi ton code risque de ne pas l'aider parce qu'en définitive, il fait la même chose que son code.
    Ahhhhhhhhhhhhhh, je viens de comprendre ce qu'il voulait , merci kaidan, mais là il est trop mal parti!!! Il va te falloir quasiment tout refaire...

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Points : 45
    Points
    45
    Par défaut
    salut
    sisqo60 ton code marque sauf que les changements se realise dans une nouvelle form1 alors que moi je veux changer label1 de ma form actuel(courante)

  9. #9
    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 pas comme ça qu'il faut faire mais bon passons, c'est la modif pour que ça marche comme tu veux...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class Class1
        {
            public void myfunction(string jaja, Form1 myForm)
            {
               myForm.label1.Text = jaja;//label1 est certainement déclaré private sauf si tu l'as modifié donc cette ligne devrait pas fonctionner
                MessageBox.Show(jaja);//pas besoin de conversion, jaja est un string!
            }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            private void button1_Click(object sender, EventArgs e)
            {
                Class1 s = new Class1();
                s.myfunction("maman", this);
            }

  10. #10
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Points : 45
    Points
    45
    Par défaut
    Merci, je pige le principe maintenant
    et c'est grace a vous mes amis, merci.

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

Discussions similaires

  1. [XL-2007] Fichier CSV qui n'en fait qu'a sa tête !
    Par Dreadnought dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/11/2012, 09h25
  2. requête qui fait mal à la tête
    Par noumian dans le forum Langage SQL
    Réponses: 4
    Dernier message: 22/06/2010, 19h28
  3. Réponses: 5
    Dernier message: 19/06/2007, 15h07
  4. [SQL] une requete qui fait mal a la tete
    Par MailOut dans le forum Langage SQL
    Réponses: 7
    Dernier message: 07/02/2005, 16h22

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