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:
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.