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 :

Event RowEnter activé 2 fois sur un DataGridView


Sujet :

VB.NET

  1. #1
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Points : 275
    Points
    275
    Par défaut Event RowEnter activé 2 fois sur un DataGridView
    bonjour,

    J'ai un Datagridview avec une procédure événementielle RowEnter
    A coup d'espion et de Débug Pas à pas, j'ai remarqué que si je clique sur une ligne du DTG avec ma souris, la procédure est lancée 2 fois de suite :
    - une première fois pendant laquelle e.RowIndex = 0
    - une deuxième fois pendant laquelle e.RowIndex = l'index de la ligne où j'ai cliqué.
    Les 2 séquences s'enchaînent absolument directement.

    Evidemment, seule la deuxième instance m'intéresse.
    A quoi est-ce dû et comment y remédier ?

  2. #2
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Bonjour,
    msdn :
    Cet événement se produit lorsque le DataGridView est initialement chargé, ainsi que lorsque l'utilisateur sélectionne une ligne autre que la ligne active.
    Le premier appel ne correspond pas au chargement initial du datagridview ?

  3. #3
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Points : 275
    Points
    275
    Par défaut
    Le premier appel ne correspond pas au chargement initial du datagridview ?
    Non.
    Comme je l'ai indiqué, le premier appel se passe juste après le clic de souris dans la ligne du DTG
    Je me suis aussi aperçu que le phénomène est identique lorsque j'utilise la méthode Filter sur le BindingSource qui est en DataSource du DTG; le code suivant :
    provoque l'appel de l'event RowEnter du DTG
    - une première fois avec e.RowIndex = 0 (même si, juste avant, j'étais sur une autre ligne)
    - un deuxième fois avec e.RowIndex = la ligne où j'étais avant.
    Le 2ème appel s'effectue juste après le End Sub du 1er appel

    ce qui m'ennuie, c'est que j'effectue pas mal de choses dans la procédure RowEnter (mises à jours de champs, requêtes SQL...). Même si a priori le fait d'avoir 2 appels coup sur coup ne semble pas entraîner de dysfonctionnement, cela alourdit le fonctionnement global puisque du code est exécuté sans raison.

  4. #4
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Points : 275
    Points
    275
    Par défaut
    Je me suis aussi aperçu que le phénomène est identique lorsque j'utilise la méthode Filter sur le BindingSource qui est en DataSource du DTG
    Pour ce cas là, j'ai résolu le problème (enfin, "contourné" serait le mot le plus juste), en entourant ma ligne de code par un removeHandler et d'un AddHandler et en rajoutant une instruction qui fait juste le strict nécessaire prévu par la procédure RowEnter.

    Mais il reste le double Event RowEnter sur clic de souris où je n'ai pas d'explication ni de solution de contournement

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/01/2013, 10h16
  2. Lancer macro 1 seul fois sur activation feuille
    Par zeralium dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 09/09/2008, 18h12
  3. Réponses: 5
    Dernier message: 14/09/2007, 12h02
  4. Problème d'activation du tri sur un datagridView
    Par 2020 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/07/2007, 14h51
  5. mettre un Event sur un DatagridView.ButtonColomn
    Par 2020 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 27/06/2007, 18h06

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