Merci Spero 51 pour tout ce que tu as proposé.
Le remplissage par un list of est génialement plu rapide même sans passer par un thread.
C'est super
Version imprimable
Merci Spero 51 pour tout ce que tu as proposé.
Le remplissage par un list of est génialement plu rapide même sans passer par un thread.
C'est super
c'est plus rapide oui, mais si ta requetes retourne beaucoup de lignes, ca va geler l'interface pendant le temps du remplissage (et là le thread est nécessaire)
Bonjour,
J'ai eu le même problème de lenteur pour afficher la datview d'une table dans un DataGridView (table de 2000 lignes, 20 colonnes). Quand je voulais afficher cette table sur un vieux PC (windows 2000 avec 128 MO de RAM) cela prenait 1 min pour afficher la table. J'ai pas mal cherché sur le forum et j'ai trouvé la raison d'une telle lenteur !! Dans mon cas c'était la propriété AutoResizeColumns qui était à AllCells. En la passant à DisplayedCells le temps d'affichage de ma table est tombé à 3s. J'ai ajouté un bout de code sur le déplacement du scroll pour redimentionner mes colonnes en fonction des données présentes à l'écran (c'est un peu moins bien car les colonnes bougent en largeur lorsque l'on déplace l'ascenceur) mais c'est tellement plus efficace:mouarf:
Code:
1
2
3
4
5 private void DbGridView_Scroll(object sender, ScrollEventArgs e) { DbGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells); }
tu peux aussi calculer toi meme la largeur des colonnes en étudiant toutes les cellules
fait intelligemment c'est beaucoup plus rapide que ce que microsoft fait, et dans un autre thread c'est transparent
ca évite ainsi que ca bouge pendant le scroll
J'y avais pensé mais la flemme et le risque de nouvelle lenteur sur les vieux PC m'ont fait opter pour cette solution rapide à mettre en place.
A+