Charger un datagridview en arrière plan [Résolu]

L3Fgandalf 10 Messages postés mercredi 10 décembre 2003Date d'inscription 9 juin 2008 Dernière intervention - 13 nov. 2007 à 17:54 - Dernière réponse : L3Fgandalf 10 Messages postés mercredi 10 décembre 2003Date d'inscription 9 juin 2008 Dernière intervention
- 15 nov. 2007 à 15:39
Bonjour
J'ai développé un logiciel pour un kiné.
Je doit charger dans une fenêtre tous les clients mais il y en a presque 8000 et c'est un peu long de devoir attendre à chaque fois que je la recharge.
J'ai donc essayé avec un backgroundworker mais il n'accepte pas de modifier des éléments graphiques.
Comment puis je faire pour remplir ma liste au fur et à mesure et surtout pour faire en sorte que ça ne bloque pas le programme à chaque fois.
merci d'avance
Afficher la suite 

Votre réponse

7 réponses

nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 13 nov. 2007 à 19:02
+3
Utile
Salut

Tu as plusieurs solutions.

1-> Mettre un beginupdate endupdate pour désactiver le rendu lors du
chargement
2-> Equivalent, mais pas recommandé (pas propre) rendre invisible et
visible le controle apres le chargement
meme effet que l'astuce 1 qui est la bonne méthode.
3-> Mettre en place une pagination sur la datagridview.
http://www.vb-tips.com/dbPages.aspx?ID=5dbe894a-a7e6-434c-bd84-73494c71063f
(ce source montre peut etre comment mettre en place)

bon coding
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nhervagault
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 13 nov. 2007 à 20:54
+3
Utile
Salut

Excuse apparament ca n'existe pas sur ce controle
utilise à la place
datagrid.SuspendLayout()
datagrid.resumelayout()

La pagination, consiste à avoir sur chaque page 50 enregistrement
par exemple

et ensuite des boutons premier precedent suivant dernier

http://www.codeproject.com/useritems/DataGridView_manipulation.asp

voila
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nhervagault
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 14 nov. 2007 à 18:56
+3
Utile
Salut

Ca met quoi comme message ca serait interessant de savoir.
Sinon, je pense que c'est du au fait que le bw et le thread
d'affichage des forms sont différents.

Dans ce cas, il y a une possibilité, pour resoudre le problème
c'est de passer par les invoke et la reflexion.

Mais je pense pas que tu sois obiliger d'utiliser un bw, sinon
débrouilles toi, pour trouver une autre solution.

Ton bw remplit un dataset ou une collection, et apres tu bindes
cette collection.

Pour le invoke
http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework.windowsforms/topic17366.aspx

vas peut etre t'atider
Bon courage.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nhervagault
L3Fgandalf 10 Messages postés mercredi 10 décembre 2003Date d'inscription 9 juin 2008 Dernière intervention - 13 nov. 2007 à 20:27
0
Utile
1 Comment fais tu pour désactiver le rendu pour le chargement

3 Je n'ai pas compris le principe de pagination
Commenter la réponse de L3Fgandalf
L3Fgandalf 10 Messages postés mercredi 10 décembre 2003Date d'inscription 9 juin 2008 Dernière intervention - 13 nov. 2007 à 23:30
0
Utile
Oki merci beaucoup pour ces renseignements?
Je vais voir ça demain.
Merci ça m'aide déjà
Commenter la réponse de L3Fgandalf
L3Fgandalf 10 Messages postés mercredi 10 décembre 2003Date d'inscription 9 juin 2008 Dernière intervention - 14 nov. 2007 à 15:35
0
Utile
J'ai essayé mais si je met juste :
datagrid.SuspendLayout()

traitement

datagrid.resumelayout()

c'est toujours aussi lent
et si je fais

datagrid.SuspendLayout()

BW.dowork

datagrid.resumelayout()
Ca plante encore
Commenter la réponse de L3Fgandalf
L3Fgandalf 10 Messages postés mercredi 10 décembre 2003Date d'inscription 9 juin 2008 Dernière intervention - 15 nov. 2007 à 15:39
0
Utile
C'est effectivement la raison et la solution.
Pour ce qui ne parle pas beaucoup anglais et qui ont le même problème :

http://www.developpez.net/forums/archive/index.php/t-118709.html
Commenter la réponse de L3Fgandalf

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.