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

Contribuez .NET Discussion :

Astuce pour savoir qu'une nouvelle fenetre est créee dans votre application !


Sujet :

Contribuez .NET

  1. #1
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut Astuce pour savoir qu'une nouvelle fenetre est créee dans votre application !
    Bonjour

    Je n'ai pas retrouver le thread ou cette question avait été posée, mais il me semble qu'une personne "damien xxx" avait posé la question suivante:

    Existe t-il un evenement permettant de savoir qu'une fenetre de notre application a été ouverte ?

    J'ai eu envie d'essayer de trouver la réponse ce matin, et je suis arrivé à faire quelque chose, mais c'est assez "obscur"

    Voici le code que j'ai fait :

    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
    public class Filtre : IMessageFilter
        {
            #region IMessageFilter Members
     
            public bool PreFilterMessage(ref Message m)
            {
                Trace.WriteLine(m.ToString());            
     
                if (m.Msg == 0xC0DB)
                {
                    Trace.WriteLine("Création d'une nouvelle fenetre pour l'application");
                    Trace.WriteLine("Il y a " + Application.OpenForms.Count.ToString() + " fenetres ouvertes");
                }
                return false;
            }
     
            #endregion
        }
    Et dans le code de ma form principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Filtre toto = new Filtre();
     
            public Form1()
            {
                Application.AddMessageFilter(toto);
                InitializeComponent();            
            }

    Bon, alors le 0xc0db, je ne sais pas à quoi il correspond. J'aurais tendance
    à dire qu'il correspond au cumul de valeur lorsqu'une création doit avoir lieu. C'est assez mystérieux pour savoir quels énums se cachent derrière.

    J'ai testé avec des fenetres Modal ou non modale, cela fonctionne très bien.

    Par contre, avec une OpenFileDialog, que nenni... (d'ailleurs, avec une OpenFileDialog (Save ca doit faire pareil), il n'y a plus aucun message qui arrive à l'application dès l'appel au ShowDialog() de cette classe

    Voila, J'espère que cela aura aidé un peu la communauté. (peut-être un passage dans la FAQ...)

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    (d'ailleurs, avec une OpenFileDialog (Save ca doit faire pareil), il n'y a plus aucun message qui arrive à l'application dès l'appel au ShowDialog() de cette classe
    pas étonnant, ce ne sont pas des forms à proprement parler. ce sont des éléments de windows, un composant qui ressemble à une fenetre mais qui n'en n'est pas une pour autant. ca n'a pas les même propriétés qu'une fenêtre d'ailleurs.
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/08/2013, 23h29
  2. Réponses: 2
    Dernier message: 25/07/2010, 15h32
  3. Réponses: 3
    Dernier message: 12/06/2007, 18h10
  4. outputLink pour ouvrir une nouvelle fenetre
    Par Alec6 dans le forum JSF
    Réponses: 1
    Dernier message: 10/01/2007, 14h54
  5. Comment créer une nouvelle fenetre pour recherche
    Par RaimS dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/06/2006, 16h02

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