IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Form parent et form enfant


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Form parent et form enfant
    Bonjour à tous,

    j'avais une question surement bête mais je n'ai trouvé de réponse
    J'aimerais savoir comment est-il possible de fermer la fenetre principale de mon programme sans fermer les autres fenetres.

    Je m'explique, j'ai une form par exemple qui demande un login, et une fois valider j'ouvre une nouvelle form et j'aimerai fermer la form qui demande le login.

    Merci de votre aide :$ et désolé si j'devrais pas poser cette question :$

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    dans le point d'entrée de l'application (habituellement "static void Main()"), avant le code qui crée et affiche la fenêtre principale, par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run(new FormPrincipale());
    tu crées un formulaire de manière standard avec un using

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Boolean continuer = false;
    using(FormLogin formLogin = new FormLogin())
    {
      continuer = formLogin.ShowDialog() == DialogResult.Ok;
    }
    Ensuite si continuer est vrai, alors tu exécutes la ligne vue plus haut.
    Ta fenêtre de login sera fermée.
    Sinon, tu ne fais rien et le programme sera fermé.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Ah oué !
    J'avais pas pensé comme ca désolé :$
    Merci de ton aide !
    Juste pour info, c'est la meilleure méthode, existe-il d'autres ?

    Merci en tout cas !

    Ahh désolé encore, mais comment j'pourrais faire pour récupérer alors le champ d'une textbox sur le form de login pour le transmettre au form principal ?

    Merci de ton aide

  4. #4
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    2 propriétés publiques dans le formulaire de login qui renvoient le texte des zones de texte nom et motdepasse.
    Avant de sortir du using, tu lis les propriétés et tu en fais ce que tu veux.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Ok !
    Ca j'y avais pensé je l'ai fait deja c'est impec !
    Mais le problème maintenant, c'est quand j'appuie sur valider il faut que j'mette quoi dans l'evenement ??
    Car justement avant j'ouvrais ma form principale une fois la form login validée !

    Merci de ton aide :$

  6. #6
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    Le bouton Valider de ta Form Login doit avoir la propriété DialogResult à OK.
    Le bouton Annuler à Cancel.

    Les deux vont fermer ton formulaire.
    Dans l'évènement FormClosing du formulaire de login, tu vérifies la propriété DialogResult pour savoir quel bouton a été cliqué.

    Si Cancel, tu ne fais rien. La fenêtre se ferme et tu sors avec un DialogResult à Cancel qui quitte l'application.

    Si Ok, tu vérifies tes infos.
    Si ça colle, tu laisses aller et tu sors avec un DialogResult à OK que tu détecteras dans le Main.
    Si ça coince, tu annules la fermeture avec un joli message disant que les infos sont erronées. Et tu remets le DialogResult du formulaire à None pour être sur que ça va rien fermer.

  7. #7
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Oula, ça me parait un brin complexe comme solution tout ça.
    Ma proposition :
    - Un formulaire de login avec deux boutons OK et Cancel, le bouton Cancel paramétré avec le DialogResult à Cancel. Un event handler sur le bouton OK qui vérifie les credentials, si c'est bon, tu passes le DialogResult du formulaire à DialogResult.OK, sinon tu fais rien (ou tu affiches une insulte, etc.).
    - Dans ton Main : un if(new LoginForm().ShowDialog() == DialogResult.OK){ Application.Run(...) // et tout le blabla qui va avec }

    Après tu peux affiner la procédure de login en proposant de re-saisir les credentials en cas d'erreur, en implémentant un compteur d'échec de connexion, etc.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Merci de vos réponses !
    Je ne savais pas non plus qu'il y avait une propriéte "DialogResult" :$
    Sorry :[
    Merci beaucoup en tout cas !

    A bientot

  9. #9
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    si ça peut t'intéresser, j'ai mis ici un petit exemple style tutoriel :
    Authentification

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Form avec Enregistrement Parent et Datagrid Enfants
    Par Jeterh dans le forum Windows Forms
    Réponses: 0
    Dernier message: 27/10/2012, 17h34
  2. [Débutant] Communication d'un booléen de form enfant à form parent
    Par zatark dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/09/2012, 10h27
  3. Problème de form parent enfants
    Par davidif dans le forum Débuter
    Réponses: 49
    Dernier message: 27/08/2012, 12h08
  4. form parent et form et fils
    Par gone01 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 08/08/2008, 09h04
  5. visibilité d'une Form Parent
    Par ben_ghost dans le forum C++/CLI
    Réponses: 28
    Dernier message: 03/11/2006, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo