Petit problem windows::form c++ visual form

Fermé
guil - 17 nov. 2010 à 20:28
 guil - 21 nov. 2010 à 20:19
Bonjour,
j'ai un programme créé avec visual studio c++ .
Dans ce programme j'ai deux form .
Mais je ne sais pas comment recuperer ( avec le form1 )des donnes saisie dans le form2.
j'ai pensé :
Form ^ form2 = gcnew Form2();
form2->Show();
this->label5->Text = form2->textBox1->Text ;

Mais il me met en erreur : error C2039: 'textBox1' : n'est pas membre de 'System::Windows::Forms::Form

Merci d'avnce ( SVP ne me parlez pas de QT je hais )


A voir également:

2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié par KX le 18/11/2010 à 14:01
Il y a peut-être plus propre, mais j'avoue avoir essayé d'autres méthodes avant celle-ci, mais elles ne fonctionnaient pas.

Voici ce que j'ai fait :
J'ai créé un nouveau projet Windows Forms. Form1 est créé automatiquement, je fais ajouter, nouvel élément Windows Forms et je l'appelle Form2.

Dans Form1, je rajoute un TextBox, et je fais de même dans Form2. Par défaut les deux s'appellent textBox1, pour être plus clair, je renomme en textBox2 celui de Form2.

Dans Form2.h, je modifie l'accès private de textBox2 en public.

Puis dans Form1.h, je fais include "Form2.h" et j'implémente :

public ref class Form1 : public System::Windows::Forms::Form
{
private: Form2 ^ form2;

public:
	Form1(void)
	{
		InitializeComponent();
		form2 = gcnew Form2();
		// form2->Show();	// on peut afficher form2 maintenant 
					// j'ai préféré le faire plus tard
	}

Et en rajoutant l'évenement TextChanged à textBox1 :

System::Void textBox1_TextChanged(System::Object^  sender, System::EventArgs^  e) {
	this->form2->textBox2->Text = this->textBox1->Text;
	if (this->textBox1->Text == "form2 ouvre toi")
		 form2->Show(); // form2 peut-être affiché quand on veut
}

J'espère n'avoir rien oublié entre ce que je fais et ce que je viens d'expliquer.

Chez moi ça donne : form1 s'ouvre tout seul, je peux faire ce que je veux avec, mais quand j'écris "form2 ouvre toi", la fenêtre form2 s'ouvre et textBox2 affiche le contenu de textBox1. Au départ ce contenu sera "form2 ouvre toi", mais à chaque modification de textBox1 le texte de textBox2 sera modifié.

Léger bug lié à mon exemple, si tu fermes form2, le programme plante quand tu écris une nouvelle fois "form2 ouvre toi" car la méthode Show() ne peut plus s'appliquer.
1
merci kx pour ton aide très utile
bye a+
0