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 :

TreeView : lenteur après migration sous .Net 2.0


Sujet :

C#

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut TreeView : lenteur après migration sous .Net 2.0
    Bonjour,

    Le framework 2.0 (et supérieur) est beaucoup plus lent quand on met à jour le texte d'un TreeNode.

    J'ai écrit un exemple très simple (ci-dessous) :
    Ma WinForm contient :
    - un TreeView avec des TreeNodes.
    - une TextBox
    Sur l'évènement TextChanged de ma TextBox, je met à jour le texte du TreeNode sélectionné.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
     
            for (int i = 0; i < 100; i++)
            {
                TreeNode aTreeNode_Lvl1 = new TreeNode("Node " + i);
                for (int j = 0; j < 10; j++)
                {
                    TreeNode aTreeNode_Lvl2 = new TreeNode("Node " + j);
                    for (int k = 0; k < 10; k++)
                    {
                        TreeNode aTreeNode_Lvl3 = new TreeNode("Node " + k);
                        aTreeNode_Lvl2.Nodes.Add(aTreeNode_Lvl3);
                    }
                    aTreeNode_Lvl1.Nodes.Add(aTreeNode_Lvl2);
                }
                treeView1.Nodes.Add(aTreeNode_Lvl1);
            }
        }
     
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            treeView1.BeginUpdate();
            if (treeView1.SelectedNode != null)
            {
                treeView1.SelectedNode.Text = textBox1.Text;
            }
            treeView1.EndUpdate();
        }
    }
    Sous .Net 1.1, le texte du TreeNode se met à jour instantannément et on ne ressent pas de lenteur lors de la saisie dans le TextBox.
    Sous .Net 2.0, on ressent une lenteur lors de la saisie dans le TextBox.

    Est-ce que quelqu'un a déjà constaté ce problème ?
    Est-ce que quelqu'un a une solution ?

    D'avance merci.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Points : 625
    Points
    625
    Par défaut
    Retourne au 1.1 ^^

    sinon, je ne suis pas sur de mon coup mais essaye avec SuspendLayout() et ResumeLayout() à la place de BeginUpdate() et EndUpdate()
    "Essayer est le premier pas vers l'Echec !" (Homer Simpson)

  3. #3
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    As-tu testé en enlevant BeginUpdate et EndUpdate ?
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Pas mieux avec Suspend/ResumeLayout.
    Pas mieux sans Begin/EndUpdate.
    Ni toute combinatoire de ces appels.

    Merci quand même.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Points : 625
    Points
    625
    Par défaut
    ben alors je dirais que plutôt que mettre a jour la node à chaque changement de texte tu ferais mieux de la mettre à jour lors du "Validate" ou quand tu cliques sur un bouton, ca accélèrera toujours un peu l'affichage.

    désolé
    "Essayer est le premier pas vers l'Echec !" (Homer Simpson)

  6. #6
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    C'est ce que j'ai fini par faire.

    Pour info:
    En cherchant sur le web, il semblerait que ce problème soit connu et que Microsoft n'ait pas prévu d'y remédier.

    Merci à tous pour votre aide.

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

Discussions similaires

  1. [WS 2008] Lenteur extrême lors de l'ouverture d'une session après migration AD2008
    Par Vlacar dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 23/08/2011, 16h39
  2. Lenteur de connexion en 10gR2 après migration depuis 10gR1
    Par adeltimple dans le forum Connexions aux bases de données
    Réponses: 0
    Dernier message: 02/07/2010, 11h01
  3. Problème de perfs après simple migration en .Net 2.0
    Par Ideal_Du_Gazeau dans le forum C#
    Réponses: 0
    Dernier message: 23/02/2010, 18h29
  4. Treeview lié à un SpreadSheet sous VB.NET
    Par minas00 dans le forum VB.NET
    Réponses: 0
    Dernier message: 11/09/2009, 17h27
  5. Réponses: 2
    Dernier message: 18/04/2008, 15h26

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