c# – TreeView随机无法显示新添加的节点

我在WinForm应用程序中有一个TreeView,我使用添加,重新排序和删除方法来添加新节点,重新排序现有节点和删除旧笔记.

有时当我添加一个新项目时,它会立即在TreeView中进行网络显示,但是当我添加下一个节点时它确实正确显示.它似乎是随机发生的,因此很难找到根本原因.

即使节点未在UI中正确显示,节点计数也是正确的.

TreeView1.BeginUpdate();
TreeView1.Nodes.Add("P1", "Parent");

foreach(User u in items)
{
    if( condition)
    {
        node.Text =u.sNodeText; 
        node.Tag = u;
        node.Text = u.sNodeText;                    
        GetChildren(node);
        TreeView1.Nodes["P1"].Nodes.Add((TreeNode)node.Clone());
    }
}            
TreeView1.ExpandAll();
TreeView1.EndUpdate();           
TreeView1.Refresh(); 

谁能回答这个问题?我认为这个问题并非毫无意义.
这是GetChildren方法.

     private void GetChildren(TreeNode node)
    {
        TreeNode Node = null;
        User nodeCat = (User)node.Tag;

        foreach (User  cat in items)
        {
            if (cat.sParentID == nodeCat.sID)
            {
                Node = node.Nodes.Add(cat.sNodeText);
                Node.Tag = cat;
                GetChildren(Node);
            }
        }

解决方法:

您是否尝试过Invalidate()与Refresh()?刷新仅重绘客户端区域,而Invalidate重绘整个控件.这只是在黑暗中拍摄的……我以前从未遇到过这个问题.

上一篇:JavaFX 8 TreeView显示CheckBoxTreeItem与自定义CheckBoxTreeCell – 复选框选择问题


下一篇:c# – 文件下载后如何修复冻结页面?(TreeView SelectedNodeChanged中的TransmitFile)