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#] Communication entre FORM


Sujet :

Windows Forms

  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 55
    Par défaut [C#] Communication entre FORM
    Bonjour,

    Je suis débutant en POO et j'aimerais avoir quelques éclaircissements.

    - Lorsque je souhaite remplir les controles d'un form B à partir d'un FormA, je déclare les controles du FormB en public et je fais dans le formA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    formB f = new formB();
    f.txtnom.text = ...;
    f.txtage.text = ...;
    Est ce qu'il ne vaut pas mieux passer les valeurs dans le constructeur du FormB lors de l'instanciation pour qu'il remplissent ses controles par la suite..=> éviter les déclarations public des controles.


    - Ensuite, j'ai vu qu'il existait des "méthodes" get/set. Quel est leur intéret ?
    Pourquoi ne pas faire un return directement plutot que d'appeler un "get" ?


    Merci

  2. #2
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Il faut déclarer des propriétés dans ta form B du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public string Prenom
    {
        get { return this.txtPrenom.Text; }
        set { this.txtPrenom.Text = value; }
    }
    puis de ta form A tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    formB.Prenom = "Jean-claude";

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 55
    Par défaut
    c'est qd même contraignant de devoir faire une méthode pour chaque controle..
    Moi qui en ait parfois 15...

    C'est si "sale" que ca de déclarer les controles en public??

    merci

  4. #4
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Les accesseurs te permettent d'avoir le contrôle sur les actions pouvant être effectuées sur tes controles depuis un autre formulaire (lecture seule, écriture seule).
    De plus, ça te permet de :
    - Effectuer des traitements sur les données avant d'alimenter tes contrôles
    - déclencher des évènement lors de la lecture / écriture de données sur ton contrôle.

    Reste que pour 15 contrôle, moi j'utiliserais un objet business comme accesseur, enfin si ton projet utilise une couche business

Discussions similaires

  1. communication entre form
    Par bul dans le forum C#
    Réponses: 14
    Dernier message: 08/11/2010, 16h51
  2. communication entre 2 forms
    Par bellak dans le forum Windows Forms
    Réponses: 6
    Dernier message: 04/08/2008, 15h46
  3. communication entre forms
    Par jadey dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/08/2006, 16h58
  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