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

C# Discussion :

Ordre des event sur un control


Sujet :

C#

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Ordre des event sur un control
    Hello,

    Voici un sujet a mon avis tres important et peu documenté

    Quel est l'orde d'execution des event sur un control ?
    Comment peut-on le trouver ?

    Pratiquement je viens de me faire avoir avec l'event leave

    1- J'essayais de verifier si le code tapé au clavier correspondait bien a un code validé de la table bindée d'un combobox
    Exemple :
    Taper France, France est dans la table
    Taper Franc, Franc n'est pas dans la table

    Je pensais pouvoir utiliser l'event ComboBox leave et tester si le selectedValue etait null alors que le text n'etait pas vide

    Mais en fait, il faut attendre l'event Validating ou meme validated, qui se passe APRES l'event leave pour faire cete vérification

    Merci.
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  2. #2
    Membre du Club Avatar de Nanos
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 109
    Points : 50
    Points
    50
    Par défaut
    Salut à toi,

    Pour répondre à ta question l'ordre d'éxécution est tout simplement de haut en bas et pour les évenement (quand il y en a plusieurs) c'est strictement en même temps. Je suis pas sûr d'avoir compris ce que tu demandais mais j'espère de t'avoir aidé ...

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut

    Excuse moi mais je ne suis pas sur non plus d'avoir compris ta réponse

    l'ordre d'éxécution est tout simplement de haut en bas et pour les évenement
    (quand il y en a plusieurs) c'est strictement en même temps.
    S'il n'y en n'a PAS plusieurs, l'ordre n'a évidement pas d'importance
    S'il y en a plusieurs quelle nuance fais-tu entre

    de haut en bas
    et
    strictement en même temps
    Ca me semble u peu contradictoire
    ??
    Accessoirement de haut en bas : qui est haut qui est bas ?
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  4. #4
    Membre du Club Avatar de Nanos
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 109
    Points : 50
    Points
    50
    Par défaut
    Je vias t'expliquer par des morceaux de codes :

    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
    20
                try
                {
                    if (e.KeyCode == Keys.Enter)
                    {
                        WebKitBrowser wb = GetSelectedWebBrowser();
                        if (textBox2.Text.StartsWith("http://") | (textBox2.Text.StartsWith("https://") | (textBox2.Text.StartsWith("www."))))
                        {
                            wb.Navigate(textBox2.Text);
                        }
                        else
                        {
                            string page = ConfigurationManager.AppSettings["Moteur"];
                            wb.Navigate(page + textBox2.Text);
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
    Les instructions dans ce cas ci sont exécutez lignes par ligne.

    Et dans ce code ci :

    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
    20
    21
    22
    23
    24
    25
    26
    27
            //Page d'accueil
            private void button4_Click(object sender, EventArgs e)
            {
                try
                {
                    WebKitBrowser wb = GetSelectedWebBrowser();
                    string page = ConfigurationManager.AppSettings["Page d'accueil"];
                    wb.Navigate(page);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
     
            //Favoris
            private void button5_Click(object sender, EventArgs e)
            {
                WebKitBrowser wb = GetSelectedWebBrowser();
                ToolStripButton tsb = new ToolStripButton();
                toolStrip3.Items.Add(tsb);
                tsb.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
                tsb.Image = imageList1.Images[0];
                tsb.Text = wb.DocumentTitle;
                tsb.ForeColor = System.Drawing.Color.White;
                tsb.DoubleClick += new EventHandler(tsb_DoubleClick);
            }
    Les private void ... peuvent être exécutés en même temps, tu suis ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut
    Citation Envoyé par Hades Shion Voir le message
    Je vias t'expliquer par des morceaux de codes :

    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
    20
                try
                {
                    if (e.KeyCode == Keys.Enter)
                    {
                        WebKitBrowser wb = GetSelectedWebBrowser();
                        if (textBox2.Text.StartsWith("http://") | (textBox2.Text.StartsWith("https://") | (textBox2.Text.StartsWith("www."))))
                        {
                            wb.Navigate(textBox2.Text);
                        }
                        else
                        {
                            string page = ConfigurationManager.AppSettings["Moteur"];
                            wb.Navigate(page + textBox2.Text);
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
    Les instructions dans ce cas ci sont exécutez lignes par ligne.
    Il y a quoi de surprenant à ça? C'est... normal, non?

    Citation Envoyé par Hades Shion Voir le message
    Et dans ce code ci :

    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
    20
    21
    22
    23
    24
    25
    26
    27
            //Page d'accueil
            private void button4_Click(object sender, EventArgs e)
            {
                try
                {
                    WebKitBrowser wb = GetSelectedWebBrowser();
                    string page = ConfigurationManager.AppSettings["Page d'accueil"];
                    wb.Navigate(page);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
     
            //Favoris
            private void button5_Click(object sender, EventArgs e)
            {
                WebKitBrowser wb = GetSelectedWebBrowser();
                ToolStripButton tsb = new ToolStripButton();
                toolStrip3.Items.Add(tsb);
                tsb.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
                tsb.Image = imageList1.Images[0];
                tsb.Text = wb.DocumentTitle;
                tsb.ForeColor = System.Drawing.Color.White;
                tsb.DoubleClick += new EventHandler(tsb_DoubleClick);
            }
    Les private void ... peuvent être exécutés en même temps, tu suis ?
    Et tu peux expliquer comment tu appuies *strictement* en même temps sur 2 boutons?

    Sinon, pour en revenir à la question originale: l'ordre de déclenchement des events doit être documenté dans la MSDN. Je n'en suis pas sûr, mais tu trouveras peut-être ton bonheur. Sinon au pire tu t'abonnes à chaque évènement, tu mets un MessageBox.Show et tu vois dans quel ordre ils sont appelés.

    Si par contre tu as un évènement qui a de multiples souscriptions, les abonnements sont appelés dans l'ordre dans lequel ils ont été enregistrés.

Discussions similaires

  1. ordre des events avec IE
    Par joebarteam88 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/03/2009, 11h57
  2. choisir l'ordre des colonnes sur un histogramme vbar
    Par distro dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 08/02/2009, 22h32
  3. Liste des events pour un Control en C# ?
    Par sergio_bzh dans le forum Visual Studio
    Réponses: 2
    Dernier message: 02/07/2008, 18h32
  4. Réponses: 1
    Dernier message: 29/02/2008, 11h07
  5. [C#] Gestion des Events d'un control Composite
    Par lord_paco dans le forum ASP.NET
    Réponses: 3
    Dernier message: 07/10/2005, 09h10

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