begin process at 2010 02 10 12:06:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Algorithme

 > 

Compression, Split et Cryptage

 > 

chargement de treeview


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

chargement de treeview

lundi 15 septembre 2008 à 12:37:10 | chargement de treeview

capouto

bonjour,

j'utilise un treeview dans mon programme(C#) qui contient beaucoup de noeuds(environ 10000). Et voila que l'execution de mon programme est devenu tres lente. Quelqu'un aurait il une idée pour porter secours?

PS: il faut signaler que j'ai saisi manuellement tout ca dans la proprieté collection  de treeview.

Cogito
lundi 15 septembre 2008 à 13:28:42 | Re : chargement de treeview

TeBeCo

Membre Club
si le treeview le permet il faut utiliser le "VirtualMode" je sais que ca existe pour les ListBox par exemple ca te permet de definir manuellement quand et qui sera veritablement charger en memoire et affiché

de plus je vais emmettre des hypothese que tu n'as pas explicité :
cas 1 :
tes 10k noeuds represente la totalité des noeuds de ton treeview (parent + enfant + enfant des enfant etc ...)
cas 2 :
les 10k noeud sont juste les noeud parent (premiere couche) du treenode

si tu est dans le cas 1 autant tes dire que la demarche que tu utilise est totalement a revoir si tu veux amelioré un peux cela eviter de charger les arborescence enfant pour rien
car a mon avis PERSONNE n'ira regardé les 10k combinaison (et plus) de noeuds
le treeview expose des evenement qui t'indique quand les nodes ont été ouverte "Expand" ou quand elles ont été refermé "Collapse" il te suffit d'ajouter les noeud enfant qu'a ce moment la
onexpand(sender, e)
{
e.node.childnodes.clear();
list<treeviewnode> lstNode = getchilds(e.node)
fillnodes(e.nodes, lstNode);
}

un truc dans le genre, ca te permettra un affichage tjs a jour et moins consequent a utiliser

si tu est dans le cas 2 evite de chargé trop de noeud parent en essyant de controlé le VScrollBar (ou d'implementé toi meme la VScrollBar et en fonction de sa position n'affiché que les noeud necessaire + un peu au dessus / dessoud) avec la meme demarche qu'au dessus pour les childs

TeBeCo
lundi 15 septembre 2008 à 14:50:30 | Re : chargement de treeview

capouto


Merci pour ta reponse. Je suis dans le premier cas et j'aimerais avoir une idée sur ce code:
onexpand(sender, e)
{
e.node.childnodes.clear();
list<treeviewnode> lstNode = getchilds(e.node)
fillnodes(e.nodes, lstNode);
}

si tu pouvais me dire comment faire charger les noeuds enfants comme tu me le conseil
Cogito
lundi 15 septembre 2008 à 22:16:59 | Re : chargement de treeview

TeBeCo

Membre Club
je vais pas deviner un truc que t'as déjà coder toi tu sais ce qu'il y a dans tes nodes t'as juste a créé le code pour remplir les nodes quand tu les ouvrent.
depuis quelle source de données tu les remplissais ? ben tu fais pareil mais a la demande plutôt que tout d'un coup
et ouvre la doc a la page "treeview", liste des membres, événements et tu cherches ce qui parlent de expand
si après tout cela tu a encore besoin d'aide je suis prêt a parler salaire, congé payé, etc ... (non hein ?)

TeBeCo
mardi 16 septembre 2008 à 01:10:35 | Re : chargement de treeview

WishhhMaster

Salut,

Tu as ajoute manuellement 10000 nodes a partir du designer?
mardi 16 septembre 2008 à 10:41:31 | Re : chargement de treeview

capouto

oui.
merci a tous pour leur reponses. je pense que je sais maintenant ce qu'il faut faire.

CAPOUTO

Cogito
mardi 16 septembre 2008 à 19:34:40 | Re : chargement de treeview

TeBeCo

Membre Club
Réponse acceptée !
WishhhMaster :
euuu non je pense pas

capouto :
pense a valider si le problème est resolu

TeBeCo
mardi 16 septembre 2008 à 19:46:19 | Re : chargement de treeview

capouto


J'avais fais exactement ce que tu as decrit dans le premier cas et ca me causer un probleme de chargement. C'etait trop lent a l'execution. Avec la solution que tu m'as proposé c'estia dire chargement les noeuds sur demande(clic) je pense pouvoir resoudre le probleme. c'est la maintenant un probleme d'algo. Grandement merci. J'avais oublié de valider
Capouto
mercredi 11 mars 2009 à 16:36:43 | Re : chargement de treeview

dadamagouil

J'aimerai bien savoir si t'as vraiment rempli manuellement 10'000 n½uds ????

Le savoir ne vaut rien s'il n'est pas partagé


Cette discussion est classée dans : programme, chargement, treeview


Répondre à ce message

Sujets en rapport avec ce message

Bug visuel avec openFileDialog [ par josselin1503 ] Salut,j'ai un programme qui doit lire des fichiers de plusieurs milliers de lignes et je trouve ce fichier via un openFileDialog.Le programme marche m chargement d'une treeview a partir d'un fichier XML [ par M_karim8 ] bonjour je cherche a charger une tree view a partir d'un fichier XML. quelqu'un saurait il comment faire ???merci d'avance... descripteur de fichier [ par nicolaslepot ] Bonjour, dans un programme en C#, il faudrait que je supprime un fichier dès qu'un programme externe à terminé de le lire. Je pense que pour faire cec IMAGE.URL/TREEVIEW [ par akira3 ] salutj'ajoute des images dans les childnodes des nodes de mon treeviewproblème:avec treenode.imageurl,j'ajoute une icone differente (ajout,modif,supp) Ajouter des dll dans un setup project [ par francesdereve ] SalutJ'ai un programme quand on l'installe,on pourra ajouter les composants dans Vs.net.Alors ce que je veux en faisant le setup project de ne pas rei Application autonome [ par beny100 ] bonjour, j'ai developper une application sous csharp mais mon problème est que je veux que cette application soit autonme c'est a dire qu'elle tourne Treeview [ par romagny13 ] Bonjour Quelquun saurait il comment parser chaque node dune treeview jusqu'au node selectionné(et ne parser que les nodes appartenant au chemin Fullpa PB Ping pocket pc [ par SfyLer ] Bonjour voilà je fait un programme pour Pocket PC, il doit pouvoir ping un host.Ce programme fonctionne bien sur mon PC mais sur le pocket PC lorsque faire du ftp [ par beny100 ] bonjour,j'ai ecris mon programme en csharp et les fichiers que traite mon programme sont stockes sur un serveur unix.mon problème est que je sais pas fin execution [ par anthony65 ] j'ai fais un programme console  cSharpe avec visual studio.net 2003 et des que je l'execute a la fin de l'execution il sort, ne me laissant pas voir l


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales