Portée des composants...

[Résolu]
Signaler
Messages postés
102
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
17 mars 2009
-
Messages postés
102
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
17 mars 2009
-
Salut,




Je me retrouve devant un problème: j'ai une form principale (Form1) quand je click sur un bouton "nouveau" , Form2 apparait avec des champs de saisie. Je voudrais qu'à la fermeture les données saisies apparaissent dans un dataGrid ou un listBox ou autres...




En VB, on pouvait dans le code de la Form2, utilisez ce genre de commande:


Form1.textBox1.Text = Form2.textBox2.Text


dito avec un listBox ou autres




J'ai essayé en C#, ça ne fonctionne pas. Je pense que c'est une histoire de Public, static, private mais je n'arrive pas à m'en sortir. (pour les valeurs des variables, j'ai réussi en la déclarant ainsi Public static int Compteur par ex)




Si quelqu'un peut m'expliquer comment ça marche en C# ...




Merci d'avance.

@ plus

lagoelle

4 réponses

Messages postés
102
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
17 mars 2009

En breton, bidou signifie le bidouric, c'est à dire le dernier enfant.

Merci beaucoup pour tes explications

@ plus

lagoelle
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
57
Salut,
Cette question a été posée des 10aines et des 10aines de fois, fait une recherche sur le forum (passage de paramètre); tu peux aussi regarder dans mes sources....

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Messages postés
102
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
17 mars 2009

Salut et merci bidou (breton ?),




Ta source est très bien, mais existe t-il un moyen plus simple comme en VB:




Form1.listBox1.AddItem (Form2.textBox.Text) par exemple.




En gros, est ce qu'on peut déclarer les composants en accès libre à partir de toutes les forms d'une appli, comme pour les variables avec public et static ?




Sinon, j'utiliserais la méthode de ta source.




Merci encore.

@ plus

lagoelle
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
57
Non pas breton, à vrai dire même pas français
Oui il existe d'autre méthode alternative :

Une idée est de placer le composant en public, mais tu devrais à ce moment posséder une référence dans ta class appelante.

Exemple :

// Construire la deuxieme form en y donnant la référence de la première
frmSec fS = new frmSec();
fS.MainForm = fM; // A toi de faire cet attribut
fS.Show();

// Dans la 2ème form
this.fM.monComposant. (...) // Accède à l'élément public via la référence

Mais cette méthode est moins propre que l'utilisation des events.
(J'ai pas démarrer VS pour tester le code, c'est fait de tête, donc adapte si jamais y'a une petite faute ).
A+

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever