OVH Cloud OVH Cloud

Ouvrir/Decharger une fenetre

2 réponses
Avatar
Alex
Bonjour,

désolé si la question semble neuneu mais je début en CSharp et bien que
j'ai fait quelques exercices avant, je ne suis jamais tombe sur ce cas.

En fait j'aimerais ouvrir une fenetre a partir d'une autre:
frmTOTO ouvre par clique sur btnMonBouton frmTITI
je sais que je dois faire:

frmTITI frm_TITI = new frmTITI();
frm_TITI.Show();

ok ca marche mais j'aimerais decharge (de la memoire) frmTOTO

J'ai bien tente de faire a la suite un frmTOTO.Close(); mais ca arrete
le programme.

De plus sous VB6, on pouvait creer une variable globale. Mais sous
CSharp, c'est pas la meme.

Comment puis je faire l'equivalent?

Je pensais a une classe qui ne contiendrait que des variables.

En fait je voudrais qu'un utilisateur entre son login/pass dans
l'application, je recupere son ID dans une BDD et je me baladerai avec
cet ID dans toute l'application pour y faire mes INSERT dans d'autres
tables avec cet ID.

Par avance, merci de vos lumieres.

Alex

2 réponses

Avatar
Paul Bacelar
"Alex" wrote in message
news:45748459$0$11494$
Bonjour,

désolé si la question semble neuneu mais je début en CSharp et bien que
j'ai fait quelques exercices avant, je ne suis jamais tombe sur ce cas.

En fait j'aimerais ouvrir une fenetre a partir d'une autre:
frmTOTO ouvre par clique sur btnMonBouton frmTITI
je sais que je dois faire:

frmTITI frm_TITI = new frmTITI();
frm_TITI.Show();

ok ca marche mais j'aimerais decharge (de la memoire) frmTOTO

J'ai bien tente de faire a la suite un frmTOTO.Close(); mais ca arrete le
programme.

De plus sous VB6, on pouvait creer une variable globale. Mais sous CSharp,
c'est pas la meme.

Comment puis je faire l'equivalent?

Je pensais a une classe qui ne contiendrait que des variables.

En fait je voudrais qu'un utilisateur entre son login/pass dans
l'application, je recupere son ID dans une BDD et je me baladerai avec cet
ID dans toute l'application pour y faire mes INSERT dans d'autres tables
avec cet ID.

Par avance, merci de vos lumieres.

Alex




C'est parce que la méthode statique Main (point d'entré de votre programme)
utilise une ligne comme : Application.Run(new Form1());

cf. : http://msdn2.microsoft.com/en-us/library/ms157902.aspx

Soit vous changez votre méthode Main pour utiliser des primitives de code
plus évoluées (mais plus complexe) ou vous changez votre design pour ne pas
à fermer le formulaire principal. Vu votre problématique initiale, il serait
beaucoup plus simple de rendre invisible ou non éditable votre formulaire
principal lors de la demande de login.



Pour les variables globales, c'est très bien qu'elles disparaissent car
elles sont avantageusement remplacées par des membres statiques (de
classes), regardez du coté du mot clé "static" devant des déclarations de
membres de classe, ou par l'utilisation du Design Pattern Singleton.


--
Paul Bacelar
MVP VC++
Avatar
Alex
Paul Bacelar wrote:
"Alex" wrote in message
news:45748459$0$11494$

Bonjour,

désolé si la question semble neuneu mais je début en CSharp et bien que
j'ai fait quelques exercices avant, je ne suis jamais tombe sur ce cas.

En fait j'aimerais ouvrir une fenetre a partir d'une autre:
frmTOTO ouvre par clique sur btnMonBouton frmTITI
je sais que je dois faire:

frmTITI frm_TITI = new frmTITI();
frm_TITI.Show();

ok ca marche mais j'aimerais decharge (de la memoire) frmTOTO

J'ai bien tente de faire a la suite un frmTOTO.Close(); mais ca arrete le
programme.

De plus sous VB6, on pouvait creer une variable globale. Mais sous CSharp,
c'est pas la meme.

Comment puis je faire l'equivalent?

Je pensais a une classe qui ne contiendrait que des variables.

En fait je voudrais qu'un utilisateur entre son login/pass dans
l'application, je recupere son ID dans une BDD et je me baladerai avec cet
ID dans toute l'application pour y faire mes INSERT dans d'autres tables
avec cet ID.

Par avance, merci de vos lumieres.

Alex





C'est parce que la méthode statique Main (point d'entré de votre programme)
utilise une ligne comme : Application.Run(new Form1());

cf. : http://msdn2.microsoft.com/en-us/library/ms157902.aspx

Soit vous changez votre méthode Main pour utiliser des primitives de code
plus évoluées (mais plus complexe) ou vous changez votre design pour ne pas
à fermer le formulaire principal. Vu votre problématique initiale, il serait
beaucoup plus simple de rendre invisible ou non éditable votre formulaire
principal lors de la demande de login.



Pour les variables globales, c'est très bien qu'elles disparaissent car
elles sont avantageusement remplacées par des membres statiques (de
classes), regardez du coté du mot clé "static" devant des déclarations de
membres de classe, ou par l'utilisation du Design Pattern Singleton.




Super, merci beaucoup, je vais voir tout ça.

Alex