This.Close() récalcitrant

Résolu
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 21 juil. 2005 à 18:27
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 22 juil. 2005 à 11:55
Bonjour

J'ai une Form (CGuiStart) qui est un ecran de login
je souhaite lancer une autre Form (CGuiMain) en cas d'authentification..... rien de bien complexe, je pensais.


<HR>




if (
CResource.IsConnected)
{

CGuiMain oGui =
new
CGuiMain();
oGui.Show();

this.Close();
}




<HR>

le problème, c'est que ma Form de login ne se masque pas...

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic

8 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 42
22 juil. 2005 à 06:03
Application.Run( new StartForm( ) ) ajoute Application.ExitThread( ) à l'événement de ta forme, ca ferme la boucle de message, je pense que tu peux regler le problème si tu utilises StartForm.ShowDialog( ) sur ta première forme de login, après tu appeles StartForm.Dispose( ) et là tu lances ta forme principale avec Application.Run( new MainForm( ) ).
3
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 42
21 juil. 2005 à 18:46
Salut, c'est pas un problème avec la boucle de message ? Tu l'as créer comment ta première forme ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
21 juil. 2005 à 21:24
sans heurs....

elle est lancée via (code généré)

Application.Run ( new CGuiStart() );

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
21 juil. 2005 à 21:43
Je viens de faire le test avec un projet bidon, sous VB.Net (2005 également) :


<HR>
Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click

Dim F
As
New Form1
F.Show()

Me.Close()

End
Sub

<HR>

et le comportement est identique....
je voudrais que la seconde feuille prenne le relais, mais l'application se ferme

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0

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

Posez votre question
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
21 juil. 2005 à 23:19
Salut,

L'appel de close sur le formulaire principal de ton appli entraine effectivement la fin de la boucle de message.
Une solution pourrait être un "controleur" qui lancerais/masquerais l'invite de login et l'autre formulaire suivant l'action nécessaire, sans être détruit avant la fin "réelle" de l'application.
Une autre serais de lancer une deuxieme boucle suivant la reussiste du login ou non (ptet un peu bencale celle ci)
Une autre serais d'utiliser Hide() au lieu de Close() afin que ton formulaire de login soit masqué et non détruit.

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 38
22 juil. 2005 à 09:31
essaye ca :

CGuiStart guiStart = new CGuiStart()
Application.Run ( );


<HR>
Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
22 juil. 2005 à 09:58
Super, ca fonctionne enfin.

Merci a vous (ca fait drole, pour une fois d'être du coté des demandeurs, sur le Forum ^^ )


<HR>


CGuiStart oGuiStart =
new
CGuiStart();
oGuiStart.ShowDialog();

Application.Run(
new
CGuiMain());

Et une fois l'identité de l'utilisateur confirmée, je fais un

this.Dispose()


<HR>

Ca fonctionne, pourtant je trouve cette solution un peu bancale.... est 'LA' solution ?

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 42
22 juil. 2005 à 11:55
Ce qui peut être amusant, c'est de faire une seule forme, mais "polymorphe" une fois le login validé, tu disposes tous les controls, tu appelles this.Controls.Clear( ) puis tu la reconstruits différemment.
0