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 :

appler un controle qui se trouve dans une autre form


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 50
    Par défaut appler un controle qui se trouve dans une autre form
    bonjour tout le monde

    j'ai deux forms la principale form1 qui affiche les données de l'application et l'autre form2 qui est appelé par form1 avec un bouton , mais comment accéder aux controles de la form1 à partir de la form2 ( je veux dire dans le code de la form2) .

    exemple textbox1 qui appartient à form1 . sachant que le namespace est le meme mour les deux .

    merci de votre aide

  2. #2
    Membre expérimenté
    Avatar de sam_XIII
    Profil pro
    Inscrit en
    Août 2003
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 221
    Par défaut
    suffit de faire un tour dans la faq

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 50
    Par défaut
    bonjour

    voila ce que j'ai fait

    dans la form1 qui s'appelle interact

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     private void button3_Click(object sender, EventArgs e)
            {
                Form mrecherche = new recherche()  ;
                mrecherche.Owner = this;
                mrecherche.Show();
     
     
            }
    et dans la deuxième qui s'appelle recherche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     private void button1_Click(object sender, EventArgs e)
            {
     
                interact minteract = (interact)this.Owner;
    mais je ne peux pas acceder avec par exemple !

    merci de m'indiquer comment faire .


  4. #4
    Membre éprouvé Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Par défaut
    un seul mot : propriété
    à toi de faire le reste

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 50
    Par défaut
    pardon quelle proprité , je suis qu'un bleu dans c# et dotnet

  6. #6
    Membre averti
    Inscrit en
    Février 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2007
    Messages : 31
    Par défaut
    salut

    pour y acceder tu dois la declarer en public

    a+
    costik

  7. #7
    Membre éprouvé Avatar de prem's
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Par défaut
    Citation Envoyé par sam_XIII
    suffit de faire un tour dans la faq
    perso je trouve pas la solution dedans ...
    mais ça serait bien de la mettre...enfin les, vu que y a plusieurs solutions:

    - mettre le controle/la variable en public comme fait dans ce topic
    - passer le controle en paramètre au constructeur de la deuxième form.

  8. #8
    Membre expérimenté
    Avatar de sam_XIII
    Profil pro
    Inscrit en
    Août 2003
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 221
    Par défaut
    Citation Envoyé par prem's
    perso je trouve pas la solution dedans ...
    mais ça serait bien de la mettre...enfin les, vu que y a plusieurs solutions:

    - mettre le controle/la variable en public comme fait dans ce topic
    - passer le controle en paramètre au constructeur de la deuxième form.
    ben avec ca y avai deja moyen de s'en sortir :

    Citation Envoyé par la faq
    Comment accèder à une méthode publique d'une form à partir d'une autre form créé par la première ? [haut]

    auteur : dev01
    Afin de pouvoir communiquer à partir d'une form nouvellement ouverte vers la form créatrice vous devez passer la form créatrice à la nouvelle form.

    //Dans Form1
    public void TraitementForm1()
    {

    }

    public void OuvertureForm2()
    {

    MaForm2 maForm2 = new MaForm2();
    maForm2.Owner = this;
    maForm2.Show();
    }

    //Dans MaForm2

    private void ButtonOk_Click(object sender, System.EventArgs e)
    {
    MaForm1 maForm1 = (MaForm1)this.Owner;
    maForm1.TraitementForm1();
    }
    ...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 50
    Par défaut
    oui c'est ce que j'ai suivi, et j'ai rendu la déclaration textbox1 dans le fichiers form1.Designer.cs (dans mon cas interacte.Designer.cs) public
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public System.Windows.Forms.TextBox textBox2;
    et voila ça roule !

  10. #10
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Pour info, je tiens quand meme à préciser que ce genre de "manipulation" n'est pas forcement souhaitable et qu'un modèle de données sur laquelle serait
    "binder" des textbox dans ton cas serait plus "propre"...

    En effet, d'un point de vue découpage de code, c'est pas super propre de faire
    qu'un controle aille mettre à jour un controle appartenant à une autre données

    car si, la fenetre mise à jour par la form1 est la form2, et que l'utilisateur ferme et ré-ouvre la form2 (genre appli Mdi avec outils)... il y a des risques que les
    données afficher à l'init de la form2 ne soient pas à jour... avec en plus un
    système ou les mises à jours obligent chaque form à connaitre une autre forme

    Il serait plus "judicieux" mais parfois plus fastidieux (quoi que) d'avoir un module
    qui contient les informations, et chaque Form vient mettre à jour ou lire les données disponibles (les event peuvent servir à cela aussi)

    The Monz, Toulouse

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/03/2012, 10h21
  2. Réponses: 1
    Dernier message: 30/07/2010, 14h39
  3. Appeler une fonction qui se trouve dans une autre fonction
    Par waxouse dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 11/05/2009, 16h28
  4. Réponses: 2
    Dernier message: 02/04/2008, 19h55
  5. Acceder à un object qui se trouve dans une autre classe
    Par ceres02 dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 08/02/2006, 13h29

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