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

VB.NET Discussion :

Evenement formclosing (capter plusieurs fois )


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    *
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : *
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut Evenement formclosing (capter plusieurs fois )
    Bonjour,

    je déclenche l' ouverture d'un form à partir d'une fenetre principale à l'aide de Form1.ShowDialog()

    ensuite je capte l'evenement formclosing dans form1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
     
    Msgbox("test")
     
    end sub
    Mon probleme est que l'évenement est capté à la fermeture de la fenetre Form1 ( tout va bien ),mais aussi à la fermeture de la fenetre principale
    ce qui est tres genant.

    je ne comprend pas pourquoi l'evenement se produit de nouveau a la fermeture de la fenetre principale alors que form1 est fermé

    Comment puis-je solutionner ce probleme en utilisant ShowDialog() ?


    Merci d'avance

    Bonne journée

  2. #2
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut Réponse
    Citation Envoyé par Pasges Voir le message
    Bonjour,

    je déclenche l' ouverture d'un form à partir d'une fenetre principale à l'aide de Form1.ShowDialog()

    ensuite je capte l'evenement formclosing dans form1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
     
    Msgbox("test")
     
    end sub
    Mon probleme est que l'évenement est capté à la fermeture de la fenetre Form1 ( tout va bien ),mais aussi à la fermeture de la fenetre principale
    ce qui est tres genant.

    je ne comprend pas pourquoi l'evenement se produit de nouveau a la fermeture de la fenetre principale alors que form1 est fermée.

    Comment puis-je solutionner ce probleme en utilisant ShowDialog() ?


    Merci d'avance

    Bonne journée
    Bonjour,

    C'est pas clair pour moi, tu as une form1 principale (celle paramétrée pour l'ouverture je présume) qui est la form1, or quand tu fermes la form1 principale (celle de l'ouverture), ben ça ferme le reste, donc comment la form2 peut rester ouverte, je ne comprends pas ? A moins que tu n'utilises des form parent/enfant ?

    Autre chose, pour lancer une feuille, l'appel d'un objet sur une feuille fermée peut être suffisant...

    Il faudrait que tu expliques exactement le fonctionnement entre feuilles concernées, le type de feuille, etc ? Pour fermer de façon certaine, mais là c'est l'application, tu as END (RESET pour les fichiers), mais le END en fait office.

    Au plaisir.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    *
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : *
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut
    Bonsoir et merci pour ta réponse,

    Je vais tenté d'etre plus clair ,

    j'ai un premier Window Form "Form_principal " avec un code qui ouvre (si certaines conditions sont réunies ) un deuxieme Window Form "Form1" (modale).

    la commande d'ouverture étant Form1.ShowDialog()

    Dans "Form1" j'intercepte l'evenement formclosing pour qu'a la fermeture de "Form1" un code se déroule ( dans l'exemple une msgbox)

    Lorsque je ferme "Form1" ( la croix) le code se déroule normalement comme prévu ( dans l'exemple la msgbox apparait) et la fenetre se ferme

    par contre à la fermeture de "Form_principal" le code se déroule de nouveau ( dans l'exemple la msgbox ré apparait) alors que form1 est fermé ?????

    et la je comprend plus..........

    Bonne fin de journée

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    comment ferme tu tes form ?

    normalement il faut les fermer avec .dispose
    pour un showdialog setter dialogresult ferme la fenêtre mais ca ne doit pas empecher de la disposer sinon elle existe peut etre encore sans être visible
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut
    Citation Envoyé par Pasges Voir le message
    Bonsoir et merci pour ta réponse,

    Je vais tenté d'etre plus clair ,

    j'ai un premier Window Form "Form_principal " avec un code qui ouvre (si certaines conditions sont réunies ) un deuxieme Window Form "Form1" (modale).

    la commande d'ouverture étant Form1.ShowDialog()

    Dans "Form1" j'intercepte l'evenement formclosing pour qu'a la fermeture de "Form1" un code se déroule ( dans l'exemple une msgbox)

    Lorsque je ferme "Form1" ( la croix) le code se déroule normalement comme prévu ( dans l'exemple la msgbox apparait) et la fenetre se ferme

    par contre à la fermeture de "Form_principal" le code se déroule de nouveau ( dans l'exemple la msgbox ré apparait) alors que form1 est fermé ?????

    et la je comprend plus..........

    Bonne fin de journée

    bis,

    ok, veux-tu regarder dans tes paramètres afin d'indiquer la forme qui se lance au démarrage, car normalement c'est la form1.

    Sinon, tu avais l'option sans riend écrire form1 (démarrage), puis form2, etc, pourquoi as-tu changé ce qui était prévu pour tourner s, car à l'origine c'est ta form numéro combien ta form_principal ?

    Au plaisir.

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    Citation Envoyé par Ehjoe Voir le message
    ok, veux-tu regarder dans tes paramètres afin d'indiquer la forme qui se lance au démarrage, car normalement c'est la form1.

    Sinon, tu avais l'option sans riend écrire form1 (démarrage), puis form2, etc, pourquoi as-tu changé ce qui était prévu pour tourner s, car à l'origine c'est ta form numéro combien ta form_principal ?

    garder les noms par défaut form1 form2 etc c'est pas terrible, et apparemment il a changé le nom de certaines
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    garder les noms par défaut form1 form2 etc c'est pas terrible, et apparemment il a changé le nom de certaines
    Ben oui, mais maintenant il a dû mal à s'y retrouver !

  8. #8
    Futur Membre du Club
    Homme Profil pro
    *
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : *
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut
    merci à tous

    il y avait bien une instance du form1 dans le Form_principal qui n'était pas disposer

    Ce qui explique totalement le déroulement.


    Bonne soirée

  9. #9
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Disons qu'à la fermeture du programme, il est normal que ce dernier essaye de fermer toutes les formulaires (Objet Forms) ouvert (même si ces derniers ne sont pas visibles).

    Il doit forcément avoir dans ton programme à ce moment une instance de ton formulaire qui traîne quelque part. Il faut si possible éviter d'utiliser le nom de la classe comme nom d'instance. Une des principales horreur que permet VB selon moi...

    Ex (En supposant qu'on a un formulaire qui s'appelle Main)

    Pas bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub montretoi()
    Main.Show()
    End Sub
    Bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public monFormulaire As Main
     
    Public Sub montretoi()
    monFormulaire = New Main()
    monFormulaire.Show()
    End Sub

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

Discussions similaires

  1. Evenement se déclenchant plusieurs fois
    Par Pynouz dans le forum C#
    Réponses: 6
    Dernier message: 24/01/2012, 13h57
  2. Réponses: 6
    Dernier message: 15/07/2010, 16h26
  3. Réponses: 1
    Dernier message: 30/12/2006, 10h30
  4. Réponses: 2
    Dernier message: 10/07/2004, 17h14
  5. [Servlet] Comment utilisé une servlet plusieurs fois ?
    Par gandalf_le_blanc dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 03/06/2004, 14h49

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