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 :

Mais qui cancel mon FormClosing ?


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut Mais qui cancel mon FormClosing ?
    Salut,

    J'ai un problème étrange dans une appli Windows Forms : dans certains cas, quand je clique sur le bouton fermer, rien ne se passe... J'ai ajouté un handler sur FormClosing pour voir ce qui se passait, et j'ai vu que le e.Cancel était déjà à true en entrant dans mon handler !!! Ce n'est pourtant pas moi qui le met à true...

    Je soupçonne un rapport avec une librairie que j'utilise (DockPanel Suite de Weifen Luo), vu que ce problème se produit après certaines manipulations sur le docking des fenêtres MDI filles. J'ai cherché dans le code de DockPanel Suite : pas la moindre référence à FormClosing ou à Cancel...

    Donc je suis un peu largué, je ne vois pas du tout ce qui peut annuler mon évènement... et à ma connaissance il est impossible de lister les handlers abonnés à un évènement...

    Des idées sur ce qui peut provoquer ce comportement ?

  2. #2
    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
    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

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Merci pour le lien
    J'ai un peu regardé, mais j'ai pas réussi à en tirer grand chose
    Par contre, en regardant avec Reflector, j'ai vu que le framework mettait parfois e.Cancel à true, apparemment pour des histoires de validation... je cherche de ce côté là

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par tomlev Voir le message
    avec Reflector, j'ai vu que le framework mettait parfois e.Cancel à true, apparemment pour des histoires de validation... je cherche de ce côté là
    Oui lorsque l'on a une validation sur un contrôle et que la validation ne passe pas, on ne peut pas fermer la Form, donc tu peux checker par là.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ben oui, mais le problème, c'est que quand ça se produit, le contrôle qui apparemment n'arrive pas à se valider est un contrôle d'une fenêtre MDI fille qui est fermée... (visible dans le debugger via le champ privé ContainerControl.unvalidatedControl). Sa propriété Parent est à null, il n'a aucun contrôle enfant, et IsHandleCreated est à null... je ne vois vraiment pas pourquoi il vient m'em***der !

    Enfin bon, j'ai déjà perdu pas mal de temps sur ce truc, je me suis résigné à forcer e.Cancel à false...

    Merci quand même

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Bon, j'ai quand même fini par trouver la vraie cause du problème...
    En jouant sur le docking des fenêtres, je me retrouvais dans un cas où le ActiveControl de la form principale pointait sur une form MDI fille que j'avais fermé (alors que ActiveMdiChild pointait sur celle qui restait ouverte).

    Cette fois c'est vraiment réglé je pense

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

Discussions similaires

  1. Un regex qui fonctionne sur les testeurs en ligne, mais pas dans mon code
    Par billybobbonnet dans le forum Développement Windows
    Réponses: 4
    Dernier message: 28/01/2015, 17h20
  2. Mais qui à coché mon checkBox ?
    Par guigouz dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/05/2008, 14h22
  3. dll qui compile mais qui bloque en appel
    Par darkman10 dans le forum Windows
    Réponses: 7
    Dernier message: 09/05/2006, 15h02
  4. [FLASH MX2004] Un bouton qui suit mon curseur...
    Par gregooo dans le forum Flash
    Réponses: 17
    Dernier message: 03/02/2006, 11h27
  5. Une table qui existe mais qui est inconnu! ?
    Par Nino dans le forum InterBase
    Réponses: 6
    Dernier message: 13/06/2003, 11h47

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