PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 2015
-
29 nov. 2005 à 14:43
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 2015
-
29 nov. 2005 à 16:11
Bonjour, c'est encore moi :)
Alors voilà mon pb aujourd'hui.
Voilà dans mon application, j'ai plusieurs USERs control dans une form, qui sont en premier plan ou en arrière plan (Show ou Hide) en fonction d'un outil MainMenu (peut être que je n'utilise pas la meilleure manière, si vous en avez d'autres, je susi preneur). Je précise, c'est une application en WIN.
Dans l'un de mes UserControl (on va l'appeler heu... usrEleve), j'ai un tableau qui résume ts les élèves ou il y a des informations les concernant, et trois boutons, ajout/modif/suppression.
Mon bouton ajout m'ouvre un autre UserControl... Qui est stocké 'par dessus' mon UserControl usrEleve, mais en visible=false.
Pour passer de l'un à l'autre, je mets userAjoutEleve1.visible=true; puis
userAjoutEleve1.bringToFront(); sur l'évenement onClick de mon bouton Ajout.
Pour l'instant ça ça marche. (uen fois de plus si j'utilise une mauvaise technique, genre si un Load (mais je ne vois pas trop comment ça marche) ou autre est plus simple, n'hésitez pas à me le dire hein).
Ma question, est la suivante.
Voilà je suis dans mon usrAjoutEleve, et j'ai un bouton qui me permet de revenir à moné cran principal. (en gros qui fait un Visible=false;)
Comment mettre à jour ma list concernant mes eleves lstEleves (en supposant que j'ai rajouté un élève par exemple) ? Il faudrait que je mette à jour mon dataset (cmdDataEleve.fill(DsEleves)) mais je ne vois pas OU placer cet événement ?
Alors j'ai bien pensé à créer un truc du genre
usrEleve MyUsr;
MyUsr=parent;
MyUsr.cmdDataEleve.Fill(MyUsr.DsEleves);
Le souci c'est que parent ne doit pas être la bonne instanciation pour le composant MyUsr... (qui est bien paramétré en public hein...)
J'ai recherché quelques informations sur ce Forum sans trouver de solutions apparentes.
Donc si quelqu'un a la réponse... ou une suggestion...
(si vous souhaitez plus de détails, n'hésitez pas à m'en demander hein... )
****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 29 nov. 2005 à 14:50
je vois une solution plus simple... tu t'abonnes à l'évènement VisibleChanged de ton UserControl, et lorsque celui-ci passe à false... et bah tu recharge le dataset... simple et efficace ;)
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 29 nov. 2005 à 14:58
Le souci, c'est que mon UsrControl UsrEleve ne bouge pas, et reste tjrs à visible...
Il perd juste le focus, vu que UsrAjoutEleve passe à BringToFront, mais en soit il est tjrs Visible... et du coup il ne passe pas dans l'évenement VisibleChanged...
****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 29 nov. 2005 à 15:38
nan... je crois que tu prends le problème à l'envers.
pense à une pile d'assiettes. l'assiette du dessus ne voit jamais celle du dessous...
donc, c'est UsrEleve qui voit UsrAjoutEleve... quand UsrEleve détecte que UsrAjoutEleve, il doit se mettre à jour tout seul. C'est pour cela qu'il existe des évènements.
genre dans UsrAjoutEleve, tu crées un évènements Added qui sera appelé à la fin de la création d'un élève.
Dans UsrEleve tu t'abonnes à cet évènement, et quand tu l'interceptes, tu le mets à jour.
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 29 nov. 2005 à 16:11
Merci cela fonctionne bien. Mm si j'ai mis un peu de temps à tout remettre dans le bon ordre pour bien comprendre :)))
Voilà le code un peu plus précis (si quelqu'un tombe par hasard par là...)
J'ai commencé par rendre public mon bouton btnAjouter dans UsrAjoutEleve.
Puis j'ai créé une fonctino (RefreshList) de type Void dans mon userEleve, qui contenant le code nécessaire pour mettre à jour ma liste. (en gros ocmdEleves.Fill(dsEleves);) avec les arguments (object sender, EventArgs e)
Puis j'ai rajouté dans InitializeComponents la ligne suivante :