Accès aux composants d'une autre form

ZackLaMenace Messages postés 11 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 12 avril 2012 - 12 avril 2012 à 10:47
ZackLaMenace Messages postés 11 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 12 avril 2012 - 12 avril 2012 à 14:20
Bien le Bonjour,

Je débute en C# et je cherche une âme charitable pour m'aider. Je souhaiterais, d'une Form2 ouverte, pouvoir alimenter une textBox, via un bouton, qui se trouve sur une Form1 ouverte également.

J'ai bien cherché et j'ai trouvé quelques trucs, notamment de passé le textbox en public mais j'ai une erreur à la compilation et pour le reste je trouve ça d'une rare complexité (utiliser les délégués par exemple) pour faire un quelque choses d'aussi bête.

Merci d'avance pour votre aide

9 réponses

Tupad Messages postés 239 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 27 août 2012 5
12 avril 2012 à 11:21
Si tu dois envoyer tes données d'une form 1 à une form 2 lors de la construction de la 2e form, envoie le par le constructeur (surcharge le)

Form 2 = new Form2("ton texte");


public class Form2
{
public Form2(string text)
{
this.textBox.Text = text;
}
}
0
ZackLaMenace Messages postés 11 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 12 avril 2012
12 avril 2012 à 11:31
Salut,

Je te remercie de ta réponse mais en fait c'est l'inverse que je veux. Mes deux forms sont déjà charger et je veux sur le click d'un bouton de form2 envoyer ma donnée dans un textbox de form1 sans fermer form2.

Merci
0
Tupad Messages postés 239 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 27 août 2012 5
12 avril 2012 à 11:37
Tu instancies d'abord quelle form?
La 1 ou la 2?
0
ZackLaMenace Messages postés 11 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 12 avril 2012
12 avril 2012 à 12:13
D'abords la 1 et ensuite via un bouton sur form1 j'ouvre la form2 et ensuite je veux via un nouveau bouton de form2 passer une donnée dans une textbox situé sur form1.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tupad Messages postés 239 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 27 août 2012 5
12 avril 2012 à 12:45
Tu peux lier un événement de ta form 2 à une méthode de ta form 1 lors de la création de la form 2.
0
ZackLaMenace Messages postés 11 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 12 avril 2012
12 avril 2012 à 12:50
Tu n'aurais pas un exemple stp ?
0
Tupad Messages postés 239 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 27 août 2012 5
12 avril 2012 à 13:11
Dans la form2
public event Action<string> ActionString;

public void btn_Click(object sender, EventArgs e)
{
// toujours vérifier que l'événement n'est pas différent de null sinon erreur lors du déclenchement
if(this.ActionString!= null)
this.ActionString("du texte");
}


Dans la form 1
public void ConstructForm2()
{
Form2 = new Form2();
Form2.ActionString += this.GetString; // ou += new Action<string>(this.GetString);
Form2.Show();
}

private void GetString(string s)
{
this.textbox.Text = s;
}
0
Tupad Messages postés 239 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 27 août 2012 5
12 avril 2012 à 13:13
Petite correction
// toujours vérifier que l'événement est différent de null sinon erreur lors du déclenchement
if(this.ActionString!= null)
this.ActionString("du texte");
0
ZackLaMenace Messages postés 11 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 12 avril 2012
12 avril 2012 à 14:20
Excellent ça fonctionne !! En fait je pensais que l'on pouvais appeler le textbox de la form1 directement à partir de la form2 mais ça ne fonctionne pas comme ça. Je vais regarder ton code pour mieux comprendre la philosophie.

Encore un grand Merci et une bonne journée !
0
Rejoignez-nous