Bonjour,
Je suis face à un comportement assez ennuyant avec les DataGridView, un problème de rafraichissement de l'affichage lors du chargement du tableau et/ou lors du changement des couleurs des cellules.
J'ai tout d'abord eu un problème de rafraichissement par balayage très lent. J'ai défini l'événement CellFormating de manière à ce que certaines cellules soient grisées car non éditables, et d'autres blanches car éditables. Parfois, des lignes entières peuvent être grisées suivant les contraintes de l'application.
Je remarquais à chaque ouverture du tableau qu'on voyait d'abord que les cellules étaient toutes blanches, puis un balayage se faisait de manière à colorier une par une et de haut en bas les lignes du tableaux. Comme si je me retrouvais face à un très vieux PC qui saccade.
J'ai pu résoudre ce premier problème en affectant la propriété DoubleBuffered à True, astuce que j'ai trouvée ici : http://stackoverflow.com/questions/1...my-two-screens
Maintenant, je suis face à un autre problème de rafraichissement de l'affichage, et je pense qu'il est étroitement lié au précédent. Ce n'est plus un problème de balayage, mais de scintillement maintenant. En effet, le tableau apparait une fraction de seconde en blanc, puis gris après le "coloriage".
Ce que j'aimerais arriver à faire, c'est que le tableau s'affiche directement dans les coloris souhaités et ne les fasse pas à la vue de l'utilisateur.
J'ai essayé les méthodes SuspendLayout() et ResumeLayout() lors du rafraichissement des données, mais cela ne change absolument rien à l'affichage. J'ai également essayé bêtement un Hide() puis un Show(), mais rien à faire, le "coloriage" se fait quand même après.
Quelqu'un aurait-il une idée sur la meilleure manière de régler ces problèmes de rafraichissement ?
Merci d'avance.
Partager