想实现这样的一个功能
让treeview保存上一次选择状态比如有1,2,3三个结点 我点了2之后 下一次打开窗口2会自动被选择我用静态变量保存了上一次选择的node并用下面代码,发现上一次所选的结点,并没有用深蓝色的背景给标记出来
trvDeptNameListIn.SelectedNode = selectNodes;
trvDeptNameListIn.SelectedNode.Checked=true;希望有知道的朋友 能指点一二!
不胜感谢!!!
让treeview保存上一次选择状态比如有1,2,3三个结点 我点了2之后 下一次打开窗口2会自动被选择我用静态变量保存了上一次选择的node并用下面代码,发现上一次所选的结点,并没有用深蓝色的背景给标记出来
trvDeptNameListIn.SelectedNode = selectNodes;
trvDeptNameListIn.SelectedNode.Checked=true;希望有知道的朋友 能指点一二!
不胜感谢!!!
trvDeptNameListIn.SelectedNode = selectNodes; 中的这个“selectNodes”已经不是当前树中的对象了
其中:name_v是你要选中的节点的name,TreeNode[] trnds = treeView1.Nodes.Find(name_v, true); foreach (TreeNode nd4 in trnds)
{
if (nd4.Name.ToString()) == name_v)
{
treeView1.SelectedNode=nd4; //定位 }
}
树中的节点全是新生成的新对象,不再包含原来的对象了。搂主应该找一个值类型的数据保存在你的静态变量中,例如12楼说的name属性
但要保证name属性在整个树中是唯一的。如果搂主坚持要直接保存节点对象,其实搂主在窗口重新打开,树重新装载之后,可以这样做:if(静态变量!=null && 静态变量.Name == 当前循环到的节点.Name)
循环到的节点.Selected = true;以上两句实在搂主的树创建完毕后,再循环查找选中的过程中的做法,下面是在创建过程中直接选中的做法:if(静态变量!=null && 静态变量.Name == 你即将要新创的节点的Name)
parentNode.ChildNodes.Add(静态变量); //即把之前保存的节点再次添加到树中
{
parentNode.ChildNodes.Add(静态变量); //即把之前保存的节点再次添加到树中
this.treeView1.SelectedNode = 静态变量;//将其选中
} 上面都是一些伪代码,不一定就能执行,楼主参考
已经用折中的办法实现了这样的效果看过以后疑问好像又多了起来 还是结贴吧 去看下MSDN了