C# winform 如何记录上一次点击的treeview的节点,当点击右键更新整个树后在现实上次展开的状态?
C#winform如何记录上一次点击的treeview的节点,当点击右键更新整个树后在现实上次展开的状态?(和上一次样式一样,被点击的节点有背景色。)...
C# winform 如何记录上一次点击的treeview的节点,当点击右键更新整个树后在现实上次展开的状态?(和上一次样式一样,被点击的节点有背景色。)
展开
3个回答
展开全部
每次点击节点的时候 记录当前点击的节点 如把当前节点的值 或者对象存起来 然后点击更新 加载树的时候 跟上次点击的去比对
//更新节点时 treeView1.Nodes.Clear(); TreeNode parentNode = new TreeNode("根节点"); TreeNode node1 = null; string text=""; for (int i = 1; i <10; i++) { text = "子节点1-" + i; TreeNode node = new TreeNode(text); if (selectNodeText!=""&&selectNodeText==text) { node1 = node; } parentNode.Nodes.Add(node); } treeView1.Nodes.Add(parentNode); node1.BackColor = Color.Red; treeView1.SelectedNode = node1;
//树选中时 记录当前选择节点 string selectNodeText = ""; private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (treeView1.SelectedNode != null) { selectNodeText=treeView1.SelectedNode.Text; } }
//更新节点时 treeView1.Nodes.Clear(); TreeNode parentNode = new TreeNode("根节点"); TreeNode node1 = null; string text=""; for (int i = 1; i <10; i++) { text = "子节点1-" + i; TreeNode node = new TreeNode(text); if (selectNodeText!=""&&selectNodeText==text) { node1 = node; } parentNode.Nodes.Add(node); } treeView1.Nodes.Add(parentNode); node1.BackColor = Color.Red; treeView1.SelectedNode = node1;
//树选中时 记录当前选择节点 string selectNodeText = ""; private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (treeView1.SelectedNode != null) { selectNodeText=treeView1.SelectedNode.Text; } }
展开全部
如果不考虑重新启动软件之后还要记录的问题的话,只要在代码加个全局的hash或者list,记录展开的节点的唯一标识,id或者其他啥的,然后收拢的时候去全局的容器里面把对应键值干掉就可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建一个属性,用来保存最后一次选择的节点,更新后判断该属性是否有值,然后让treeview选择这个值得节点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询