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 :

DataGridView problèmes de performance validation d'une cellule après CellParsing


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Points : 6
    Points
    6
    Par défaut DataGridView problèmes de performance validation d'une cellule après CellParsing
    Bonjour,

    J'ai de gros problèmes de performance avec DataGridView. J'ai un tableau de 5000 à 15000 lignes, si je réduis les données aucun souci.
    Mon DataGridView.DataSource est un BindingSource et le BindingSource est lié à une BindingList.

    Mon problème apparait à la modification d'une cellule, après click sur entrée ou click sur une autre cellule, il se passe de 2 à 4 secondes en fonction de la machine.

    Après nombreux tests j'ai repéré que le gros du temps était entre CellParsing et CellValidated.
    Cependant la méthode CellParsing n'est pas en cause car quand je la surcharge (aucun traitement) il se passe toujours autant de temps avant d'arriver à CellValidated.

    J'ai également récupéré l'évènement OnCellValidating : J'ai remarqué que lorsque je remplis DataGridView[][].Value le traitement est très long à ce moment (points d'arrêt) tandis que si je remplis ma BindingList je sors immédiatement de ma méthode et la lenteur est après la méthode (je ne trouve pas où).

    Le problème vient-il d'un temps très long pour faire le lien entre la BindingList et le tableau (est-ce que tout est vérifé ?) ou est ce un rafraichissement du tableau ?
    Quelles solutions ?

    Merci d'avance.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 177
    Points : 5 738
    Points
    5 738
    Par défaut
    Vu ton nombre de ligne ça peut venir d'un problème de ralentissement de l'affichage.

    Commence pas activer le DoubleBuffer sur le dgv pour commencer.

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 177
    Points : 5 738
    Points
    5 738
    Par défaut
    Voici un code qui devrai fonctionner.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static class ControlExtentions
    {
    	public static void SetDoubleBuffering(this System.Windows.Forms.Control @this, bool value)
    	{
    		System.Reflection.PropertyInfo controlProperty = typeof(System.Windows.Forms.Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
    		controlProperty.SetValue(@this, value, null);
    	}
    }

Discussions similaires

  1. DataGridView Déclencher la validation d'une cellule
    Par Laur3nT dans le forum Windows Forms
    Réponses: 3
    Dernier message: 04/08/2010, 10h34
  2. Problème de useform à partir d'une cellule
    Par Ludoooo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/06/2007, 17h36
  3. Réponses: 12
    Dernier message: 05/03/2007, 12h52
  4. executer une macro apres validation d'une cellule
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/01/2007, 20h20
  5. [VBA-E]problème changement d'etat d'une cellule
    Par 12_darte_12 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/03/2006, 19h19

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