OVH Cloud OVH Cloud

Gestion de plusieurs Form

5 réponses
Avatar
CooL6a
Bonjour les C#-iens :),
J'ai deux fenêtre Form1 et Form2,
dans Form1 j'appele Form2 comme suit:

Form2 myForm2= new Form2;
myForm2.Show();

// et je cache Form1 comme suit:
this.Hide(); // this ici = l'instance de Form1

dans Form2 je veux avoir la possibilité d'afficher l'instance de Form1 que
j'ai caché avec "this.Hide()" pour retrouver son contexte que j'avais avant
de la caché.

j'ai fait ça mais biensur ça crée une nouvelle instance de Form1 donc je
perd le contexte!!!

Form1 myForm1= new Form1;
myForm1.Show();

Comment dois-je faire?

Merci d'avance.

5 réponses

Avatar
Ambassadeur Kosh
class Form2
{
public Form2(Form1 form1)
{
this.form1 = form1 ;
}

private Form1 form1 ;

public SwapShowToForm1()
{
Hide() ;
form1.Show() ;
}
}


ok ?

Form1 form1 = new Form1() ;
Form1 form2 = form1 ;

form2.Text = "youpi' ;
string s = form1.Text ;

il se trouve que form1 et form2 designent la meme fenetre.
oui ?
Avatar
CooL6a
Merci pour la réponse, mais j'ai rien compris :).
Pour la précision, je veux faire la même chose que les outils
d'installations c-à-d plusieurs fenêtres avec dans chaque fenêtre un bouton
Back et un bouton Next qui PERMETTENT DE RETROUVER LES INFORMATIONS SAISIES
PRECEDEMMENT.
Voilà voilà.
merci pour votre aide.
Cool6a.

"Ambassadeur Kosh" a écrit dans le message de
news:
class Form2
{
public Form2(Form1 form1)
{
this.form1 = form1 ;
}

private Form1 form1 ;

public SwapShowToForm1()
{
Hide() ;
form1.Show() ;
}
}


ok ?

Form1 form1 = new Form1() ;
Form1 form2 = form1 ;

form2.Text = "youpi' ;
string s = form1.Text ;

il se trouve que form1 et form2 designent la meme fenetre.
oui ?




Avatar
Sacha
Si tu veux faire un Wizard, pourquoi ne pas utiliser quelques chose
d'existant ??

Tu peux trouver des composants qui le font gratuitement, par exemple
Genghis...
http://www.sellsbrothers.com/tools/genghis/

.Sacha

"CooL6a" a écrit dans le message de
news:
Merci pour la réponse, mais j'ai rien compris :).
Pour la précision, je veux faire la même chose que les outils
d'installations c-à-d plusieurs fenêtres avec dans chaque fenêtre un


bouton
Back et un bouton Next qui PERMETTENT DE RETROUVER LES INFORMATIONS


SAISIES
PRECEDEMMENT.
Voilà voilà.
merci pour votre aide.
Cool6a.

"Ambassadeur Kosh" a écrit dans le message de
news:
> class Form2
> {
> public Form2(Form1 form1)
> {
> this.form1 = form1 ;
> }
>
> private Form1 form1 ;
>
> public SwapShowToForm1()
> {
> Hide() ;
> form1.Show() ;
> }
> }
>
>
> ok ?
>
> Form1 form1 = new Form1() ;
> Form1 form2 = form1 ;
>
> form2.Text = "youpi' ;
> string s = form1.Text ;
>
> il se trouve que form1 et form2 designent la meme fenetre.
> oui ?
>
>




Avatar
Ambassadeur Kosh
> Si tu veux faire un Wizard, pourquoi ne pas utiliser quelques chose
d'existant ??

Tu peux trouver des composants qui le font gratuitement, par exemple
Genghis...
http://www.sellsbrothers.com/tools/genghis/

.Sacha



oui, mais je pense qu'il a besoin qu'on lui apporte quelques bases.
evidement, une fois qu'on sait manier les objets, direct le wizard...
donc voila :

// classe de base de toutes les feuilles d'assistant
public WizardForm : Form
{
public WizardForm prev ;
public WizardForm next ;

// connecter les boutons aux codes respectifs
protected void MoveNext(object sender, EventArgs e) { if(next!=null) {
Hide() ; next.Show() ; } }
protected void MovePrev(object sender, EventArgs e) { if(prev!=null) {
Hide() ; prev.Show() ; } }
}

public Form1 : WizardForm {...}
public Form2 : WizardForm {...}
public Form3 : WizardForm {...}
public Form4 : WizardForm {...}
...
Form1 form1 = Form1() ;
Form2 form2 = Form2() ;
Form3 form3 = Form3() ;
Form4 form4 = Form4() ;

form1.prev = null ;
form1.next = form2 ;

form2.prev = form1 ;
form2.next = form3 ;

form3.prev = form2 ;
form3.next = form4 ;

form4.prev = form3 ;
form4.next = null ;

form1.Show() ;

voila une petite base de travail. apres, on peut faire beaucoup mieux...
mais on va déja voir ce que tu fais avec ça.
Avatar
CooL6a
Merci c'est très clair, merci beaucoup à vous tous.

"Ambassadeur Kosh" a écrit dans le message de
news:%
> Si tu veux faire un Wizard, pourquoi ne pas utiliser quelques chose
> d'existant ??
>
> Tu peux trouver des composants qui le font gratuitement, par exemple
> Genghis...
> http://www.sellsbrothers.com/tools/genghis/
>
> .Sacha

oui, mais je pense qu'il a besoin qu'on lui apporte quelques bases.
evidement, une fois qu'on sait manier les objets, direct le wizard...
donc voila :

// classe de base de toutes les feuilles d'assistant
public WizardForm : Form
{
public WizardForm prev ;
public WizardForm next ;

// connecter les boutons aux codes respectifs
protected void MoveNext(object sender, EventArgs e) { if(next!=null) {
Hide() ; next.Show() ; } }
protected void MovePrev(object sender, EventArgs e) { if(prev!=null) {
Hide() ; prev.Show() ; } }
}

public Form1 : WizardForm {...}
public Form2 : WizardForm {...}
public Form3 : WizardForm {...}
public Form4 : WizardForm {...}
...
Form1 form1 = Form1() ;
Form2 form2 = Form2() ;
Form3 form3 = Form3() ;
Form4 form4 = Form4() ;

form1.prev = null ;
form1.next = form2 ;

form2.prev = form1 ;
form2.next = form3 ;

form3.prev = form2 ;
form3.next = form4 ;

form4.prev = form3 ;
form4.next = null ;

form1.Show() ;

voila une petite base de travail. apres, on peut faire beaucoup mieux...
mais on va déja voir ce que tu fais avec ça.