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

C# Discussion :

Lenteur de chargement d'un treeview


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Par défaut Lenteur de chargement d'un treeview
    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.

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    tu peux ajouter un SuspendLayout et ResumeLayout au début de l'ajout et en fin d'ajout pour limiter les mécanismes internes de la treeview.

    Cela dit, pourquoi mettre les "1000" valeurs dans la propriété ? Autant faire un Node.Add(...) plutot que cela (c'est ce que fait le desginer cela dit)

    The Monz, Toulouse

  3. #3
    Membre confirmé Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Par défaut
    Personnellement, je ferais le remplissage du controle par un thread séparé histoire de permettre l'utilisation de l'application pendant ce chargement.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    suspendlayout ne sert qu'en cas de redimensionnement pour ne pas dessiner le controle
    par contre il y a BeginUpdate() et EndUpdate()

    avoir entré 10000 noeud à la main, quelle idée ...

    10k noeud moi ca me prend 4 ou 5 secondes à afficher, mais ils sont déja instanciés avant sur un autre thread donc ca gagne du temps

    enfin de toute facon, si tu les as mis à la main dans l'IDE, c'est pas toi qui a tapé le code pour remplir le treeview donc tu ne peux rien changer
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Et si tu charges les nodes seulement quand tu en as besoin ? C'est à dire que tu ne vois que les noeuds parents affichés, et les noeuds enfants ne se chargent que l'orsque tu veux étendre l'arborescence.

    Sinon le begin/end update te fera gagner en preformances c'est quasi sûr.

  6. #6
    Membre averti
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Par défaut merci
    finallement j'ai opté pour Nodes.add() et ca me coute 5 a 10 secondes pour le chargement. c'est genial. merci a tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Comment accélérer le chargement d'un treeview
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/11/2006, 09h58
  2. Lenteur de chargement des xls avec macros
    Par Interc00ler dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/11/2006, 18h25
  3. Réponses: 5
    Dernier message: 12/06/2006, 12h06
  4. [VBA-E] Lenteur de chargement d'un fichier
    Par Amoust dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 01/06/2006, 09h08
  5. Lenteur de chargement d'un formulaire
    Par Rcanada dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2006, 08h45

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