C'est le seul moyen que j'ai trouvé pour que form1 envoie des parametres à form2 et que form2 puisse executer et envoyer des parametres a form1. Soit un dialogue bilatteral.
Le probleme, c'est que dans ce cas la form2 reste sur la form1 et donc je ne peut pas utiliser ces deux forms en meme temps. A caus eje pense du ShowDialog(). Mais si j'utilise le Show() alors la la fille ne peut pas dialoguer avec la mere.
Comment puis je faire pour pouvoir avoir deux forms qui puissent se passer des parameteres et etre utilisables en meme temps ?
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201436 19 oct. 2005 à 06:15
ce que je propose c'est d'utiliser un système un peu plus "solide".
Pour chaque contrôle dont tu veux récupérer la valeur (sur chaque formulaire), tu crées un évènement, exemple : TextClientChanged.
Ensuite pour chaque controle tu crées une propriété :
public string Client {
get {return TextClient.Text;}
set {TextClient.Text = value;}
}
voila, maintenant que c'est bon, tu ouvres les formulaires 2 et 3 de cette manière :
dans Form1 :
Form2 f2 = new Form2();
f2.TextClientChanged += new EventHandler(TextClientChanged_Changed);
... pareil pour les autres évènements ...
et donc dans le handler tu fais :
protected void TextClientChanged_Changed(object sender, EventArgs e) {
Form2 f2 = sender as Form2;
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201436 19 oct. 2005 à 16:19
un exemple clair :
dans form2 :
public event EventHandler DataChanged;
/// dans le code de ton bouton tu ajoutes ceci :
if (DataChanged != null) {
this.DataChanged(this, EventArgs.Empty);
}
dans form1 :
/// tu t'abonnes à l'évènement DataChanged de form2
// donc après l'initialisation du ajoutes ca :
Form2 f2 = new Form2();
... blabla...
f2.DataChanged += new EventHandler(f2_DataChanged);
// et tu crées le handler comme ceci :
protected void f2_DataChanged(object sender, EventArgs e) {
... tu mets à jour tes données...
}
freesurfer
Messages postés7Date d'inscriptionmardi 18 janvier 2005StatutMembreDernière intervention19 octobre 2005 19 oct. 2005 à 08:44
Merci je vais tester ca, bon mon pietre niveau ma faire que je vais prendre du temps. Mais cette methode marche t elle si je veux executer une fonction sur Form1 depuis Form2 ?
freesurfer
Messages postés7Date d'inscriptionmardi 18 janvier 2005StatutMembreDernière intervention19 octobre 2005 19 oct. 2005 à 12:43
j'ai une fonction sur form1 qui met a jour les listviews de form1.
Depuis form 2 je rentre des données dans la base et à la fin de ce traitement je desire mettre a jour l'affichage des données des listviews du form1.
freesurfer
Messages postés7Date d'inscriptionmardi 18 janvier 2005StatutMembreDernière intervention19 octobre 2005 19 oct. 2005 à 16:07
en fait sur la form 2 j'ai un bouton qui met a jour la base et ensuite le lance la fonction sur la form 1 avec formmere.maj();
Cette fonction via des select met a jour le listview ...
Donc si je te comprends bien, je declache le datachanged d'un element de la form1 depuis la form2 et ce datachanged lance ma mise a jour