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 :

communication entre form


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    bul
    bul est déconnecté
    Membre confirmé Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 195
    Par défaut communication entre form
    bonjour à toutes et à tous,

    "MainForm" :
    une form qui en appelle une autre
    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
     
    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Windows.Forms;
    namespace comfen
    {   public partial class MainForm : Form
        {   public String txt="exemple";
            public MainForm()
            {   InitializeComponent();        }
            void Button1Click(object sender, EventArgs e)
            {   Form1 frm1 = new Form1();
                frm1.ShowDialog();
            }
        }
    }
    Form1 : la form appelée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    namespace comfen
    {   public partial class Form1 : Form
        {   public Form1()
            {  InitializeComponent();
            }
        }
    }
    puis-je y faire référence à la variable txt de la form parente ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textBox1.Text=MainForm.txt;
    par exemple, donne l'erreur
    Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'comfen.MainForm.txt'
    et ce sans passer cette variable lors de l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form1 frm1 = new Form1(txt);
    suis-je clair ?
    merci d'avance.

  2. #2
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Ben, le plus évident est de passer en paramètre ton txt soit dans le constructeur de Form1 soit dans le showDialog...
    Je ne vois pas ou est le problème sinon...

  3. #3
    bul
    bul est déconnecté
    Membre confirmé Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 195
    Par défaut
    >>...passer en paramètre...
    certes, certes...
    merci pour la réponse ppphil,
    je me demandais si c'était la seule possibilité.
    dans certains cas de figures ce serait bien
    plus simple de faire référence aux "données"
    de la form appelante "directement"
    @+

  4. #4
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Si tu as de trop nombreux paramètres, passe la form mère en paramètre.

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 24
    Par défaut
    Ce message d'erreur est tout à fait normal.
    Pourquoi ne pas rendre le champ statique ?
    De plus, rien ne t'oblige à déclarer ce champ dans une classe...

  6. #6
    bul
    bul est déconnecté
    Membre confirmé Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 195
    Par défaut
    merci les gars,

    mais quand on découvre : pas si simple !

    1° @ bizet
    passer la form en paramètres ?
    why not ?... comment ?
    Form1 frm1 = new Form1(this ou quoi ???? );
    et dans Form1 ??? comment utiliser txt ?

    2° @ LiveFromBx
    Pourquoi ne pas rendre le champ statique ?
    De plus, rien ne t'oblige à déclarer ce champ dans une classe...
    oui et ? comment on fait ?
    sur l'exemple donné ?

    @+

  7. #7
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 24
    Par défaut
    Ce problème devrait être résolu simplement en lui rajoutant un "static", comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static String txt="exemple";
    Sinon essaie en déclarant ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public String txt="exemple";
    en dehors de la déclaration de ta classe, avec un "static" aussi éventuellement.

  8. #8
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Citation Envoyé par bul Voir le message
    why not ?... comment ?
    Form1 frm1 = new Form1(this ou quoi ???? );
    et dans Form1 ??? comment utiliser txt ?
    @+
    je ne sais pas si ca fonctionne mais jaurais fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyForm myNewForm = new MyForm (this)
    et dans ma form Fille :

    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 MasterForm mymasterForm;
     
     
    ...
     
    public MyForm(MasterForm masterForm)
    {
    mymasterForm = masterForm;
    }
     
    ...
     
    masterForm.MyTextBox.Text...
    Mais pas certain que ca fonctionne et ca va te faire "grossir" ta form fille et donc prendre de la place en RAM.

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

Discussions similaires

  1. communication entre 2 forms
    Par bellak dans le forum Windows Forms
    Réponses: 6
    Dernier message: 04/08/2008, 15h46
  2. communication entre forms
    Par jadey dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/08/2006, 16h58
  3. [C#] Communication entre FORM
    Par kooljy dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/06/2006, 13h51
  4. communication entre forms
    Par Archimède dans le forum Langage
    Réponses: 10
    Dernier message: 13/10/2005, 18h05
  5. [VB.NET] Communication entre forms
    Par alex69 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/06/2005, 11h27

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