Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
21 juil. 2005 à 18:27
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 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...
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 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( ) ).
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 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.
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 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.