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 :

[vb.net]comment fermer uniquement la form de demarrage


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 23
    Points : 10
    Points
    10
    Par défaut [vb.net]comment fermer uniquement la form de demarrage
    salut

    j ai un ptit problème avec la fermeture de demarrage de l'application

    ce que j veus faire c fermer la fenêtre de démarrage de l'application apres avoir ouvert une autre ,sauf que quand j ecris
    ou
    tt court puis j ouvre l'autre fenêtre ,j vois cette derniere s'ouvrir puis se ferment les 2 fenêtres celle du demarrage et l autre que j viens d'ouvrir

    d ailleur meme quand je la ferme la fenetre de demarrage manuellement toutes les autres fenêtres ouvertes se ferment automatiquement
    j sais vraiment pas comment fermer uniquement celle du demarrage

    dans ma fameuse fenêtre de démarrage mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveForm.Close() 
    fenetre2.Show()
    merci d avance

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    C'est quoi l'intérêt de démarrer une fenêtre pour la fermer directement et en ouvrir une autre : : :
    Pourquoi tu ne démarres pas directement avec la 2 fenêtre :

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    j la ferme pas sur le champ ,j effectue des traitments puis suite a la verification de certaines conditions j la ferme
    en faite c est une fenetre d identification que j ferme si le authentification est réussi mais en meme temps ca férme ma fenetre principale
    c est ca le probleme!!

  4. #4
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Salut,

    Moi ce que je fais c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Sub main()
         Dim f As frmLogin = New frmLogin
         Dim r As DialogResult
         Do
         r = f.ShowDialog
         Loop While Not (r = DialogResult.Cancel Or r = DialogResult.OK)
          If r = DialogResult.OK Then
                  Application.Run(New frmWebs)
          End If
    End Sub
    C'est la meme chose, j'ai ma fenetre d'identification qui s'ouvre et si l'identification est bonne je ferme la fenetre :
    sur l'evenement click du bouton de login dans mon form login :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If m_login.ValidateLogin(str) Then
                Me.DialogResult = DialogResult.OK
       Else
                Me.DialogResult = DialogResult.Abort
       end if
        Me.Close()
    Voila

  5. #5
    Membre averti Avatar de Dinytro
    Profil pro
    Inscrit en
    Août 2003
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 392
    Points : 395
    Points
    395
    Par défaut
    Ta deuxième fenêtre se ferme parce que tu l'ouvre dans la première donc quand tu ferme la première fenêtre, tu tues le thread qui a lancé l'autre et donc elle se ferme.

    je pense que tu t'y prend à l'envers.
    Explique nous ce que tu fais comme traitements dedans et à mon avis, ça devrait pas être compliqué...

  6. #6
    Membre régulier Avatar de toxine
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 78
    Points
    78
    Par défaut
    pourquoi tu veux absolument la fermer ?
    Il te suffit de la cacher ...

    formprincipal.hide()

  7. #7
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    ca c'est une mauvaise idee
    Si il la cache, comme c'est la fenetre qui appelle le main form, lorsqu'il fermera le main form, l'application restera en idle et ne se fermera jamais car la fenetre d'identification sera toujours active, bien que cachée

  8. #8
    Membre régulier Avatar de toxine
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 78
    Points
    78
    Par défaut
    bah non, a la fermeture de sa form secondaire, il ferme la form principale en même temps, et donc son programme...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
         Private Sub FormSecondaire_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
            If Me.DialogResult <> DialogResult.OK Then
                Application.Exit()
            End If
        End Sub

  9. #9
    Membre régulier Avatar de toxine
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 78
    Points
    78
    Par défaut
    principale pour moi étant la form appelante et secondaire étant la form appelée

  10. #10
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Ok, ca marcherait, mais bon autant la fermer, elle ne sert plus a rien sinon a occuper de la memoire pour rien. La methode que j'ai donne plus haut permet de faire ca facilement.

  11. #11
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    salut tout le monde
    j avais pensé a hide sauf que j e prefere la fermé au debut j vois as l interet de la laisser cahé si j peus la fermé

    en faite voila ce que j fais dans cette fenétre d identification
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Private Sub Valider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Valider.Click
     
            Dim for1 As form1 = New form1
             Dim id As ident = New ident
             'la je parcour la base de donné a la recherche du mot de passe et du login saisie pr l utilisateur
            rownumber = ObjetDataTable.Rows.Count - 1
     
               'si l authentification est réussi
               If rownumber = 0 Then
     
                for1.Show()
                'ici j veus pouvoir fermé uniquement la form active :(fenetre d' identification  celle ou j'écris ce code)  
            Else
                      res = MsgBox("Authentification échoué",   MsgBoxStyle.Exclamation, "Authentification")
     
                End If
     
        End Sub
    c'est une identification assez banale

    merci d avance

  12. #12
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Salut,
    Non mais t'as vu mon message au dessus ???
    Je t'ais file exactement le code que tu veux..

    Donc ca c'est ce que tu mets en fonction de l'identification reussie ou non:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If identification reussie Then 
                Me.DialogResult = DialogResult.OK 
    Else 
                Me.DialogResult = DialogResult.Abort 
    end if 
    Me.Close()
    et ensuite il te faut une sub Main dans un fichier global comme cela :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Public Sub main() 
         'ici creation de ton form login
         Dim f As frmLogin = New frmLogin 
         Dim r As DialogResult 
        'tant que le form login ne renvoit pas DialogResult.OK ou   DialogResult.Cancel (ca c'est parceque j'ai un bouton Cancel sur mon form Login), on le laisse a l'ecran
     
         Do 
           r = f.ShowDialog 
         Loop While Not (r = DialogResult.Cancel Or r = DialogResult.OK) 
     
          'Si le resultat est OK tu lance l'application en lui passant le main form en argument
          If r = DialogResult.OK Then 
                  Application.Run(New frmWebs) 
          End If 
    End Sub
    Voila, la t'as tout je pense
    @+

  13. #13
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    salut graphicsxp

    ca marche le code que tu m a donné sauf que j ai pas trop compris ce que t a fais
    j suis encore debutant en vb.net
    stp ca serai vraiment tres gentil de ta part si tu me donnai un peu plus d expliquation sur ce que t a fais sutout ds la Sub main()

  14. #14
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Salut,
    Ben y a pas grand chose a comprendre...La methode ShowDialog renvoit un message de type DialogResult et tant que ce message n'est pas DialogResult.OK, tu affiches ton form Login.
    Ensuite quand l'utilisateur s'est logue avec les bons parametres tu fermes ton form login, tu renvoies DialogResult.OK , tu sors de la boucle et tu lances l'application grace a Application.Run(New frmWebs)

    Simple non ?
    @+

  15. #15
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    enfin j ai compris
    j te remercie ca parrait assez simple mais une fois qu on a compris
    merci bien c tres gentil de ta part

  16. #16
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    De rien. Penses a cliquer sur Resolu

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

Discussions similaires

  1. [VB.NET]Comment Imprimer une form
    Par bernard06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/10/2011, 17h43
  2. Réponses: 6
    Dernier message: 11/05/2006, 16h00
  3. Réponses: 8
    Dernier message: 08/03/2006, 16h12
  4. [VB.NET] Comment associer une Ombre à une Form?
    Par jazz matazz dans le forum Windows Forms
    Réponses: 6
    Dernier message: 28/02/2006, 14h00
  5. [VB.NET] Comment déplacer une Form d'une appli. exterieure?
    Par jazz matazz dans le forum Windows Forms
    Réponses: 8
    Dernier message: 03/02/2006, 01h24

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