刷新后,SelectedNode无法正常显示

时间:2018-11-14 20:17:09

标签: c# winforms treeview

在这里,我尝试显示重新加载树视图后的最后一个选定节点,但是选定节点始终为null。我能够从treeview节点集合中找到树节点,但无法将其分配给tree view。请建议:

 public void LoadTreeViewData()
        {
            treeView.Nodes.Clear();// Clear any existing items
            treeView.BeginUpdate(); // prevent overhead and flicker
            LoadBaseNodes();//Populate all nodes

            treeView.EndUpdate();
            treeView.Refresh();
            treeView.ExpandAll();
            if (!string.IsNullOrEmpty(m_oSelectedNode_NAME))
            {
                TreeNode[] treeNodes = treeView.FlattenTree()
                .Cast<TreeNode>()
                .Where(r => Convert.ToDecimal(r.Tag) == Convert.ToDecimal(m_oSelectedNode_NAME))
                .ToArray();

                    treeView.SelectedNode = treeNodes[0];                   
                    treeView.Focus();


            }

        }

1 个答案:

答案 0 :(得分:0)

之所以发生此问题,是因为我尝试在标签编辑事件之后更新树视图内的选定节点。我在标签编辑后放置了一个计时器,以解决此问题并设置对我有用的Selected节点。

  var tnm = new Timer() { Enabled = true, Interval = 30 };
                                tnm.Tick += delegate {
                                    SetSelectioNode();
                                    tnm.Dispose();
                                };