TreeView.BeginUpdateを追加するとツリービューのちらつきが防止されることがわかりましたが、ツリービューのすべてのノードが表示されなくなったときに、何が起こるのか教えてください。ここでコードスニペット使用TreeView.BeginUpdateとTreeView.EndUpdateツリービューがちらつきますか?
TreeNode treeNode = new TreeNode("Windows");
treeView1.Nodes.Add(treeNode);
//
// Another node following the first node.
//
treeNode = new TreeNode("Linux");
treeView1.Nodes.Add(treeNode);
//
// Create two child nodes and put them in an array.
// ... Add the third node, and specify these as its children.
//
TreeNode node2 = new TreeNode("C#");
TreeNode node3 = new TreeNode("VB.NET");
TreeNode[] array = new TreeNode[] { node2, node3 };
//
// Final node.
//
treeNode = new TreeNode("Dot Net Perls", array);
treeView1.Nodes.Add(treeNode);
一つ目は右見ていないこと - あなたは 'BeginUpdate' /'ループ内EndUpdate'やっている - と悪いことを、 'EndUpdate'は、いくつかの条件コードの中にネストされた - 私は普通に期待疑わしいコードにもかかわらず、視覚的な更新を抑制して、更新のセット全体をラップするようにしてください(第2の例では –
)。問題の症状を改善しようとしているようです。なぜあなたは最初にちらつくのですか?またはちらつきがありませんでしたか? –
ノードの追加の直前で使用した場合は、(.Nodes.Add)という意味で十分でしょうか? – vettori