uzu
Messages postés75Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention19 février 2009
-
16 avril 2007 à 07:55
uzu
Messages postés75Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention19 février 2009
-
17 avril 2007 à 08:26
bonjour!
j'ai un MenuStrip Fichier, Edition ....... ( dans Form1)
et dans le menu Fichier; il y a sous menu Ouvrir et Créer;
en cliquant sur ce sous menu Créer; il doit afficher une boite de dialogue qui est composée :
un text box + boutton Ok et Cancel,
dans le text box, on doit entrer un nombre entre 1 et 13100(pour créer des lignes), en appuyant sur le boutton Ok,
il doit afficher Form2 avec le nombre de ligne voulu.
et cette form2 doit être la fille de la form1.
ma question:
puisque InputBox n'existe pas en C#, donc je ne sais pas si je dois créer ma boite de dialogue avec les WindowsForm ou avec une autre méthode?
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 200813 16 avril 2007 à 08:12
En effet pour faire ce que tu veux faire, il faut utiliser une Form, dans laquelle tu vas mettre les contrôles dont tu as besoin. Et tu appelera ensuite cette Form par myForm.ShowDialog().
uzu
Messages postés75Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention19 février 20091 16 avril 2007 à 09:15
merci pour la réponse, mais comme je doit créer 3 Forms:
Form1 pour le MenuStrip: Fichier-> Créer
puis la Form2 pour ma Boite de Dialogue avec le textbox + boutton Ok et Cancel
puis ma form3 pour créer le nombre de lignes voulues, entré dans le text box aprè avoir appuyer sur le bouton Ok.
mais le comment je doit écrire mon code pour que ma Form1 soit MdiParent de Form3?
car je crée ma Form3 en passant par ma boite de dialogue qui est ma Form2.
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 200813 16 avril 2007 à 09:41
Si tes form 2 et 3 ne sont que des boites de dialogues, à ta place je ne passerai pas par des MDI. Tu peux simplement appeler form2 depuis form1, et tu peux ensuite apperler form3 depuis form2 ou form1 selon tes besoins.
Vous n’avez pas trouvé la réponse que vous recherchez ?
uzu
Messages postés75Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention19 février 20091 16 avril 2007 à 10:15
il y a que ma Form2 qui est ma boite de dialogue,
et ma Form1 doit être MdiParent de ma Form3 qui est MdiChild, pour que je puisse faire des modifictations à partir du MenuStrip créé dans Form1.
et Form2 c'est juste une boite de dialogue utilisée en intermédiaire pour créer ma Form3, en récupérant la donnée entrée par utilisateur dans la textbox.
en quelque sorte je doit créer un Editeur d'Armure.
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 200813 16 avril 2007 à 10:19
Et bien dans ce cas, dans form2 du stocke la réponse de l'utilisateur (dans une propriété publique par exemple). Tu affiche form2 depuis form1, et ensuite à la fermeture de form2, tu récupère la valeur saisie et tu créé form3 depuis form1.
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 200813 16 avril 2007 à 10:50
Je pense que tu t'es mélangé les pinceaux (tu appelles plusieurs fois ShowDialog sur tes fenêtre, normal qu'elles s'affichent plusieurs fois).... Voila de tête (pas testé ni même compilé) ce que tu pourrais faire :
------------------------------------------------------
Dans ta form2 :
------------------------------------------------------
int result;
private Valider_Click(object sender, EventArgs e)
{
// Si la valeur saisie est OK, on la stocke dans la varialbe result
result = int.Parse(monTextBox.Test);
DialogResult = DialogResult.Ok;
Close();
}
public int Result
{
get
{
// Renvoie le contenu de la variable result
return(result);
}
}
// Copie locale où sera stocjée la valeur saisie dans form2
int nbLignes;
// Surcharge du constructeur, prenant en paramètre la valeur saisie dans form2
public Form3(int nbLignes)
{
// On stocke la valeur passée en paramètre pour pouvoir s'en resservir
this.nbLignes = nbLignes;
InitializeComponents();
}
------------------------------------------------------
Dans ta form1 :
------------------------------------------------------
Form2 form2 = new Form2();
DialogResult res;
// Affiche form2 et attend qu'elle soit fermée
res = form2.ShowDialog(this);
// form2 est maintenant fermée
if(res == DialogResult.Ok)
{
// On récupère la valeur saisie dans form2
int nbLignes = form2.Result;
// On affiche form3, on lui passant la valeur saisie dans form2
Form3 form3 = new Form3(nbLignes);
form3.MdiParent = this;
// On affiche form3
form3.Show();
}
uzu
Messages postés75Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention19 février 20091 16 avril 2007 à 11:36
ça marche comme! mais dans ma Form2 (Boite de dialog),si bTest = false, il ya un message qui doit afficher + un bouton Ok.
quand j'appuie sur Ok il doit afficher encore une fois la boite de dialog pour entrer le nombre exate, mais lui il m'affiche Form3.