treeview 下一节点 级数不一定,如何从当前节点转到下一个叶节点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 treeView.SelectedNode = e.TreeNode.NextNode 汗, 写错了treeView.SelectedNode = treeView.SelectedNode.NextNode 入图http://www.1our.cn/11.gif就是如何从1.1到1.2.1 TreeNode next_node = treeView.SelectedNode.NextNode;while (next_node.Nodes.Count > 0) { next_node = next.Nodes[0];}treeView.SelectedNode = next_node; 楼上的代码肯定不行!级数不一定的,treeView.SelectedNode.NextNode到了一个项的最后一个页节点就返回空了 private void button1_Click(object sender, EventArgs e) { //选中节点的下一个叶节点 nextf(treeView1.SelectedNode); } //取下一个节点 private void nextf(TreeNode treeNode) { int i = treeNode.Index; //本身就是父节点 if (treeNode.Nodes.Count > 0) { currentf(treeNode); return; } //本身不是父节点但是根目录下的节点 if (treeNode.Parent == null) { if (treeView1.Nodes.Count > i) { currentf(treeView1.Nodes[i + 1]); return; } else { MessageBox.Show("不能往下了!"); } } else { if (treeNode.Parent.Nodes.Count > i + 1) { //如果下一个结存在就取这个节点的叶节点 currentf(treeNode.Parent.Nodes[i + 1]); } else { //如果没下个叶节点就求父节点的下一个节点的叶节点 if (treeNode.Parent.Parent == null) { if (treeView1.Nodes.Count > i) { currentf(treeView1.Nodes[i + 1]); return; } else { MessageBox.Show("不能往下了!"); } } else { currentf(treeView1.Nodes[treeNode.Parent.Index + 1]); } } } } //取最深的叶节点 private void currentf(TreeNode treeNode) { if (treeNode.Nodes.Count == 0) { MessageBox.Show(treeNode.Text); return; } else { currentf(treeNode.Nodes[0]); } } TreeNode t_Node = treeView1.SelectedNode; TreeNode tn = new TreeNode(); if (t_Node.Parent != null) tn = t_Node.Parent.NextNode; if (tn.Nodes.Count > 0) { treeView1.SelectedNode = tn.Nodes[0]; } if(treeView.SelectedNode.NextNode!=null){ treeView.SelectedNode.NextNode.Selected=true;} 如何把类中一个属性的变量名转换为字符串? 递归算法,为什么在别的机器上运行出错! 如何在程序中调用.MSC 同志们,帮个忙。 C#中params的用法,欢迎大家来讨论心得与体会 在页面,Excel怎么导入Sql Server2000,请高手指教!! 给大家开个FTP 【SOS】 C# 如何读标记信息 添加事件注册,在方法体里,如何调用自身的方法和属性 字符串效率问题 listView绑定数据库 如何能用XML文件 提取出它的模式文件XSD文件
http://www.1our.cn/11.gif
就是如何从1.1到1.2.1
TreeNode next_node = treeView.SelectedNode.NextNode;
while (next_node.Nodes.Count > 0) {
next_node = next.Nodes[0];
}
treeView.SelectedNode = next_node;
级数不一定的,treeView.SelectedNode.NextNode到了一个项的最后一个页节点就返回空了
{
//选中节点的下一个叶节点
nextf(treeView1.SelectedNode);
}
//取下一个节点
private void nextf(TreeNode treeNode)
{
int i = treeNode.Index; //本身就是父节点
if (treeNode.Nodes.Count > 0)
{
currentf(treeNode);
return;
} //本身不是父节点但是根目录下的节点
if (treeNode.Parent == null)
{
if (treeView1.Nodes.Count > i)
{
currentf(treeView1.Nodes[i + 1]);
return;
}
else
{
MessageBox.Show("不能往下了!"); }
}
else
{
if (treeNode.Parent.Nodes.Count > i + 1)
{
//如果下一个结存在就取这个节点的叶节点
currentf(treeNode.Parent.Nodes[i + 1]);
}
else
{
//如果没下个叶节点就求父节点的下一个节点的叶节点
if (treeNode.Parent.Parent == null)
{
if (treeView1.Nodes.Count > i)
{
currentf(treeView1.Nodes[i + 1]);
return;
}
else
{
MessageBox.Show("不能往下了!"); }
}
else
{
currentf(treeView1.Nodes[treeNode.Parent.Index + 1]);
}
}
}
} //取最深的叶节点
private void currentf(TreeNode treeNode)
{
if (treeNode.Nodes.Count == 0)
{
MessageBox.Show(treeNode.Text);
return;
}
else
{
currentf(treeNode.Nodes[0]);
}
}
TreeNode t_Node = treeView1.SelectedNode;
TreeNode tn = new TreeNode();
if (t_Node.Parent != null)
tn = t_Node.Parent.NextNode;
if (tn.Nodes.Count > 0)
{
treeView1.SelectedNode = tn.Nodes[0];
}
if(treeView.SelectedNode.NextNode!=null)
{
treeView.SelectedNode.NextNode.Selected=true;
}