在这里,我尝试显示重新加载树视图后的最后一个选定节点,但是选定节点始终为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();
}
}
答案 0 :(得分:0)
之所以发生此问题,是因为我尝试在标签编辑事件之后更新树视图内的选定节点。我在标签编辑后放置了一个计时器,以解决此问题并设置对我有用的Selected节点。
var tnm = new Timer() { Enabled = true, Interval = 30 };
tnm.Tick += delegate {
SetSelectioNode();
tnm.Dispose();
};