|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Mangeur de gauffre Inscription : octobre 2007 Messages : 4 137 ![]() |
Bonjour
Je suis confronté a un probleme que je n'avais curieusement jamais experimenté Je souhaite munir mon application d'un Login Donc je me dis que le plus simple c'est d'ouvrir une form dialogue dans le constructeur de la Form Principale et, le cas échéant, faire un Application.Exit() a la sortie du dialogue : Ca ne marche pas : la form principale finit toujours par etre affichée ? Tant pis me dis-je : je mets le Dialogue dans le Form.Load C'est un peu plus efficace mais si je ne prends pas soin de mettre le Dialogue a la FIN du Load, j'ai quand meme un fantome de la form principale qui apparait ! Quelqu'un peut-il m'expliquer ce comportement et peut-etre me suggerer la meilleure maniere de faire ? Merci de votre aide
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Consultant informatique Inscription : février 2006 Messages : 731 ![]() |
Bonsoir,
Si j'étais toi, je ferais ça dans le main. J'ai vu beaucoup de dévs qui n'osaient pas toucher au program.cs sois disant que c'était du code généré par VS, mais non. Bref, un truc du genre : Code :
__________________
Un âne se croit savant parce qu'on le charge de livres (proverbe américain) N'oubliez pas de avant de ![]() Pas de question techniques par MP, c'est contre la philosophie du forum
|
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Mangeur de gauffre Inscription : octobre 2007 Messages : 4 137 ![]() |
Merci sisqo60
Oui tu as sans doute raison C'est effectivement plus "propre" que de lancer mon dialogue dans la form principale Mais le comportement que j'ai rencontré etait un peu interpellant !
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Consultant informatique Inscription : février 2006 Messages : 731 ![]() |
Bonsoir,
Oui, je crois que j'ai zappé une partie de ta question, mais c'est pas surprenant, dans le constructeur, tu ne peux pas appeler le destructeur de l'objet... ça me parait assez logique. L'évènement form_load se produit lorsque le formulaire s'affiche donc, oui c'est normal qu'on voit ton formulaire par derrière. j'ai été vite dans ma réponse, mais c'est pas anormal.
__________________
Un âne se croit savant parce qu'on le charge de livres (proverbe américain) N'oubliez pas de avant de ![]() Pas de question techniques par MP, c'est contre la philosophie du forum
|
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() |
La solution de sisqo60 est la plus propre. Elle te permet aussi d'avoir une application qui survit sans formulaire mais avec un icone dans la zone de notification de windows par exemple.
Par contre du coup il n'est plus possible d'utiliser le code auto-généré par les propriété du projet de visual studio concernant l'infrastucture de l'application (Le formulaire ou tu choisis le formulaire de démarage, si l'application est à instance unique, etc.). Autrement le test dans l'évenement load est aussi une solution acceptable. Tu peux très bien réduire la fenêtre dans la barre des tâches avant la boite de dialogue (ne pas oublier de la remonter ensuite) afin d'éviter le formulaire blanc phantome. Si tu veux mettre le test dans le sub New, c'est possible aussi. Il faut alors utiliser une variable drapeau (boolean) selon le résultat de l'opération. Il ne reste plus qu'à tester cette variable sur le load et de fermer le formulaire si besoin. Il est aussi possible de lançer une exception dans le constructeur, ce qui évitera la création de l'objet et provoquera un crash monumental de ton application. C'est pas propre du tout mais ça doit marcher... |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com