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#] Comment passer la référence d'une fenêtre à une autre ?


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 78
    Points
    78
    Par défaut [C#] Comment passer la référence d'une fenêtre à une autre ?
    Bonjour,
    je cherche désespéremment à avoir accès aux éléments de ma fenêtre principale depuis la secondaire.
    Pour ça, il faudrait que je passe la référence de la fenêtre principale à la secondaire.

    Quelqu'un peut me dire comment faire ???

    Merci.

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Tu dois dans la classe "fenêtre secondaire", ajouter un constructeur surchargé qui reçoit en paramètre la reference de la "fenêtre appelante"
    Exemple
    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
     
    public class OtherForm : Form
    {
       private MainForm parentForm;
       public OtherForm() : base()
        {
           InitializeComponent();
        }
       public OtherForm(MainForm f)
        {
           InitializeComponent();
           this.parentForm = f;
        }
    //...
    }
    Maintenant attention, seuls les membres publics de cette instance seront accessibles par parentForm. Donc ne pas oublier de prévoir les accesseurs (get/set) necessaires dans la classe MainForm correspondants à tes besoins

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 78
    Points
    78
    Par défaut
    Si je fais une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public Label getLabel() { return lblBlabla; }
    Il me dit qu il manque quelque chose et je vois pas de quoi il parle.

    Et lors de l'instanciation de ma form secondaire dans la form principale, j'écris comment le passage de ma form principale ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Connection connect = new Connection (Principale.this);
    Ce code marche pas, alors que je faisais comme ca en Java.
    Je sais pas trop comment écrire mon passage de form donc.

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    En complétant le code déjà donné, cela donnerait
    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
    17
    18
     
    public class FConnection : Form
    {
       private MainForm parentForm;
       public FConnection () : base()
        {
           InitializeComponent();
        }
       public FConnection (MainForm f)
        {
           InitializeComponent();
           this.parentForm = f;
        }
       private void this_Load(object sender, EventArgs e)
        {
           MessageBox.Show(f.blablabla)
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public Class MainForm : Form
    {
       private FConnection f;
       private string blabla = "coucou";
       public string blablabla
       { get{ return this.blabla;}}
       //...
       private void Connection_Click(object sender, EventArgs e)
       {
          this.f = new FConnection(this);
          this.f.Show();
       }
    }
    Le test devrait fonctionner, à toi de l'adapter si tu as pigé le principe

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 78
    Points
    78
    Par défaut
    Yeeeeeeeeeeeha ca marche !
    Un grand merci !!!
    J'ai enfin fini ce projet...
    Reste juste unh problème de base de données mais ça, vais laisser tel quel car j'en ai marre :p

    Encore merci neguib.

  6. #6
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par L`artiste
    Yeeeeeeeeeeeha ca marche !
    Un grand merci !!!
    J'ai enfin fini ce projet...
    Reste juste unh problème de base de données mais ça, vais laisser tel quel car j'en ai marre :p

    Encore merci neguib.
    pas de quoi
    En ce qui concerne le souci restant, est-ce un problème de transactions avec la bdd, ou une relle difficulté en lien avec la modelisation de ta bdd.
    Pour le premier cas de figure, tu as un excellent tuto très complet ADO.Net sur le site. Pour le second cas de figure, tu as à ta disposition plusieurs forum dédiés aux SGBD également sur ce site

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Points : 78
    Points
    78
    Par défaut
    Non mon prof m'a répondu ^^
    Il faut autoriser les doublons sur la table pour certains couples de champs.

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

Discussions similaires

  1. comment passer d'une fenêtre à une autre
    Par anisslimi dans le forum Windev Mobile
    Réponses: 1
    Dernier message: 30/09/2014, 17h52
  2. Réponses: 2
    Dernier message: 27/12/2007, 17h10
  3. Réponses: 2
    Dernier message: 06/04/2007, 10h26
  4. Comment détecter la perte de focus d'une fenêtre
    Par Leviathan_72 dans le forum Windows
    Réponses: 5
    Dernier message: 31/12/2005, 00h22

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