Appel de form dynamique....

Signaler
Messages postés
33
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
22 décembre 2009
-
Messages postés
33
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
22 décembre 2009
-
bonjour à tous!
alors je vous expose mon problème qui va certainement vous paraitre balot....

Je crée une form à chaque clic sur un bouton.Mais les form gardent toujours le meme nom.... deja je suppose que c'est un problème...

A chaque form je souhaite associer deux bouttons qui vont agir différement sur celle ci.(les deux boutons restent apparant sur la fenêtre mère):
-un bouton pour éditer la form et
-l'autre pour la supprimer.

pour éditer je triche un peu car au lieu de fermer la form je fais un .hide() puis un ShowDialog() quand j appuie sur editer.

pour supprimer je suppose qu'un clear doit faire l'affaire.

donc mon problème: je n arrive pas à attribuer les boutons à chaque form. En clair lorsque j appuie sur un bouton n'importe lequel,il devrait  s'ouvrir  la fenêtre qui  est sensée lui être associé, mais cest toujours la dernière créée qui s'ouvre.

si jamais vous avez une idée elle est la bienvenue!!!!
Merci

8 réponses

Messages postés
43
Date d'inscription
mercredi 18 janvier 2006
Statut
Membre
Dernière intervention
5 août 2010

Salut

Désolé je n'ai pas trouvé tes explication tres clair mais le mieux ne serait pas de te créer une nouvelle form à chaque click sur ton bouton ?

et pour fermer la form tu ferais un close() et non un hide() ...

karim
Messages postés
33
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
22 décembre 2009
1
Bon je recommence l'explication: sur la fenêtre mère j'ai un bouton1, quand je clic dessus s'ouvre une nouvelle form. à cette nouvelle form il faut que j associe 2 boutons qui apparaissent sur la fenêtre mère. L'un servant à éditer la form fille, l'autre à supprimer la form et les deux boutons.
et je génére autant de form fille qu'il n'y a de clic sur le bouton1.

Si je pouvais faire ce que tu proposes ça me simplifierait la vie, mais le problème c'est d afficher les données entrées sur la form fille quand je cherche à la rééditer.

ai-je été plus clair? sinon je recommence autant de fois que nécessaire!!!
Messages postés
33
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
22 décembre 2009
1
Je viens d'être frappée par une idée..... qui rendrait beaucoup plus clair mon problème....

En gros je génére dynamiquement des boutons qui vont venir ouvrir des form différentes donc enfin de compte, il faudrait pour chaque bouton créé une methode dynamiquement

 buttonx_click(object sender, EventArgs e)
{
...
}

Avez-vous une idée de comment creer cette fameuse méthode dynamiquement?

merci!!
Messages postés
43
Date d'inscription
mercredi 18 janvier 2006
Statut
Membre
Dernière intervention
5 août 2010

Desolé j'ai encore un peu de mal à comprendre
Alors je vais enumérer les étapes et tu me dira si je me trompe et tu pourra me completer stp..

alors
1 _  on à un bouton sur form mère : button1
2  _ on click sur button1:     - on crée button2(editer)  et button3 (supprimer ) sur form mere
                                           - on crée formchild : (form modifiable ??)
                                           - on affiche formchild : form.show()
3 _ on click sur button2 : - form.showDialog()

?????????
karim
Messages postés
33
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
22 décembre 2009
1
oui c est ça juste petite précision à ajouter:
-la form fille apparait vierge la premiere fois qu'on appuie sur le bouton1, puis l'utilisateur rempli des champs comme une textNox et une picture box....
-lorsqu'on appuie sur éditer il faut que cette fenêtre apparaisse....

la difficulté c'est que les forms et les boutons sont créés dynamiquement en fonction du nombre de clic sur bouton1.....

comprends-tu mieu mon problème?
Messages postés
50
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
25 mai 2010

Tu veux donc dire que :
1/ Tu veux pouvoir créer plusieurs fois la même form en incrémentant la valeur des boutons et également faire en sorte que la méthode permettant de faire apparaître ces forms apparaissent en même temps que ces boutons
2/  Tu veux faire en sorte que si tu fermes l'une des formes si tu veux la rééediter tu puisses la réouvrrir avec les données que tu as marqué précedemment.
C'est bien ça?
Messages postés
58
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
5 août 2009

Parlaciel,

Je tiens avant tout à te faire remarquer que ton problème est quasiment incompréhensible. Mais si tu veux créer des appels à une méthode évenementielle (contenant le type EventArgs), il faut que tu crée un abonnement à un delegate de cette façon :
this

.button1.Click +=
new System.
EventHandler(
this.button1_Click);
ou button1.Click est l'évènement à associé à la méthode button1_Click.

Dés que tu crées un nouveau bouton il ne te reste plus qu'à l'abonnée à ta méthode évènementielle.

Sinon concernant tes form filles que tu appelles par le click du bouton1 sur ta form mère, tu devrais surcharger le constructeur de la form fille afin de maîtriser l'affichage de cette dernière pour l'édition, la modification ou tous simplement l'affichage.

1- Tu crées une nouvelle instance de ta class Form Fille avec le constructeur adéquat.
2-  Une fois ton instance créée tu l'ouvre avec la méthode ShowDialog.
3- Quand l'utilisateur ferme la fenêtre tu appelles la methode Dispose() afin de donner la main à ton Garbage Collector pour la destruction définitive de ta Form Fille et éviter ainsi toutes fuites mémoires.

En espérant que celà puisse t'aider.

JayJay974
Messages postés
33
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
22 décembre 2009
1
oui therainbow3 c'est ce que je voulais faire!!! je pensais pouvoir générer des méthodes dynamiquement relatives aux boutons créés eux aussi dynamiquement mais j ai rien trouvé qui permette de faire ça donc j'ai opté pour autre chose...

désolée de ne pas avoir été clair dans l'explication de mon problème.

merci à vous d'avoir répondu,
j'ai finalement trouvé une solution à mon problème qui est beaucoup plus crade que ce que je voulais faire mais qui fonctionne!!!