N'afficher Form1 qu'une seule fois

Résolu
Utilisateur anonyme - 19 déc. 2005 à 14:54
 Utilisateur anonyme - 20 déc. 2005 à 11:44
C re-moi !

Donc dans une MainForm je load la Form1 comme suit



BoutonClick{

string chemin="c://tactac.jpeg";

Form1 edit =new Form1(chemin);

edit.Show();

}



The probleme is que a chaque fois ke je clique sur le bouton une
nouvelle Form s'ouvre.. c normal oui, sauf que moi je veux pas en créer
une par click, mais bien une seule, et si elle est deja afichée pas en
creer une autre.

Do U understand me ?

U just need a fuck for Ur violence

15 réponses

Utilisateur anonyme
20 déc. 2005 à 11:22
edit "ne peut pas etre null" dommage lol

Bon jsui parti sur une autre solution, c moche ca ferme la form avant de la rouvrir ms c tou c ke j'ai trouvé



if(formOuverte==false){

edit =new Form1();

edit.Test=chemin;

edit.Show();

formOuverte=true;

}

else

{

edit.Dispose();

edit =new Form1();

edit.Test=chemin;

edit.Show();



}



Si z'avez une idée pr ameliorer ca ... sinon on peut dire que le
probleme est résolu, à l'arrache mais résolu. Merci à tous de m'avoir
consacré du temps

U just need a fuck for Ur violence
3
cs_poullos Messages postés 145 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 27 décembre 2005 2
19 déc. 2005 à 15:06
Tu peux faire un edit.ShowDialog(); a la place de edit.Show(); comme ca
l'utilisateur ne pourra pas revenir a la form precedente tant que celle
ci ne sera pas fermée. Noubli pas de placer un bouton sur la forme
ouverte permettant de la fermer. (this.dispose())

La brigade meurt mais ne se rend pas (Hisoka)
0
cs_poullos Messages postés 145 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 27 décembre 2005 2
19 déc. 2005 à 15:11
Si cette solution ne te plait pas, tu peux creer un bool dans ta form parente (celle qui va appeler form1). En gros ca donne ca:


form ...

{

public bool dejaouverte = false;



BoutonClick{

string chemin="c://tactac.jpeg";

if (dejaouverte == false)

{

Form1 edit =new Form1(chemin, this);

edit.Show();

dejaouverte = true;

}

}

}



et quand tu fermes ta form1 tu remets dejaouverte a false. Tu peux le
faire car tu le passes en parametre a ta form1 lors de sa creation ce
qui t oblige a changer un peu ton code.



Poste le code de ta form si tu n'as pas compris des fois je suis pas tres clair


La brigade meurt mais ne se rend pas (Hisoka)
0
Utilisateur anonyme
19 déc. 2005 à 16:02
Sisi tu est res clair o contraire et deja merci de repondre si vite !

Sauf ke mon code c ca :



void Apercu( ){

if (formOuverte==false){

Form1 edit =new Form1(chemin);

edit.Show();

formOuverte=true;

}

}

et dans ma Form1 :



void Form1Load(object sender, System.EventArgs e)

{

pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

pictureBox1.Image= Image.FromFile(url);

}



Le truc c ke on CLick dans une listBox.item, la j'apel ma fonction Apercu().

Chemin =Listbox.selectedItem



Donc si je fais comme tu propose, ma seconde photo safiche pa.

U just need a fuck for Ur violence
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_poullos Messages postés 145 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 27 décembre 2005 2
19 déc. 2005 à 16:10
Si j'ai bien compris, tu voudrais qu'a chaque fois qu'on click sur un
element de ta listBox, une forme souvre avec une photo mais pas dans
deux fenetres differentes, donc que toutes les iamages souvrent dans le
même form ?



Si c'est bien ca, il suffit juste de killer la form a chaque fois qu'un
item est selectionné et de la rouvrir derriere comme ca on croira que
c'est toujours la même qu isera utilisée.



Genre tu gardes la fonction apercu que tu avais avant en suvegardant ta
form1 dans une variable globale et tu rajoutes dans l'evenement de
changement d'index de ta listBox un code qui supprime la forme
sauvegardée et tout va marcher ^^



PS: C'est un peu porcos par contre mais bon je vois pas d'autres solutions

La brigade meurt mais ne se rend pas (Hisoka)
0
Utilisateur anonyme
19 déc. 2005 à 16:41
hum c tendu. comment faire un .Dispose() si la forme existe pas encore ?! j'ai pensé a faire ca





if(formOuverte==false){

Form1 edit =new Form1(chemin);

edit.Show();

formOuverte=true;

}

else{edit.Dispose();

}

mais bien sur edi existe pas ds le cas du else ... g pas tou compri a ta soluce de varible globale
Can u explik ?
U just need a fuck for Ur violence
0
Utilisateur anonyme
19 déc. 2005 à 17:03
Ou sinon ya pa moyen de savoir si la form1 existe ??



if ( Form1 existe) ?

U just need a fuck for Ur violence
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
19 déc. 2005 à 17:47
Singleton Rules !!!

::|The S@ib|::
MVP C#.NET
0
cs_poullos Messages postés 145 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 27 décembre 2005 2
19 déc. 2005 à 18:02
A houi j'avais oublié ce design pattern qui est excactement prévu pour ton cas :p. Je l'ai vu l'année derniere mais comme je m'en suis jamais servi ...

La brigade meurt mais ne se rend pas (Hisoka)
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
20 déc. 2005 à 08:49
Salut, tu peux aussi masquer ta forme avec la méthode Hide et tester si elle est masquée avec la propriète Visible.

Le singleton : http://www.csharp.fr/forum.v2.aspx?ID=551330
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
20 déc. 2005 à 08:55
J'ai oublié : utilises l'évènement VisibleChanged pour détecter lorsque ta forme réaffichée.

Comme cadeau de Noel j'aimerai bien un bouton EDIT pour les messages du forum.
0
Utilisateur anonyme
20 déc. 2005 à 09:48
oué ba sui ptretre un peu cocone ms jvoi pas comment utiliser le Singleton ds mon cas grrrrrrrrrr

U just need a fuck for Ur violence
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
20 déc. 2005 à 11:09
Form1 edit ;
BoutonClick{
string chemin="c://tactac.jpeg";
if (edit != null)
edit.SetChemin(chemin);
else
edit =new Form1(chemin);
edit.Show();
}

La façon la plus simple a mon avis.

::|The S@ib|::
MVP C#.NET
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
20 déc. 2005 à 11:28
Pouruqoi edit ne peux pas etre nul ?

::|The S@ib|::
MVP C#.NET
0
Utilisateur anonyme
20 déc. 2005 à 11:44
I don't know c le compilateur k'a dit

U just need a fuck for Ur violence
0
Rejoignez-nous