treeview节点移动问题

jhlz1968 2010-10-21 09:41:52
treeView结构:

A
--1
--2
--3
B
--4
C
--5
--6

有一个button,怎样实现单击button让节点按顺序被选中,包括父节点和子节点。

比如:现在子节点 3 被选中,单击button,让 B 选中,再单击,让4被选中。

还要判断是否是第一个根节点和最后一个子节点。

...全文
157 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sprc_lcl 2010-10-21
  • 打赏
  • 举报
回复
or:

if(tv.SelectedNode.PrevVisibleNode!=null)
sprc_lcl 2010-10-21
  • 打赏
  • 举报
回复
try
{
}catch一下..
jhlz1968 2010-10-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sprc_lcl 的回复:]
C# code
TreeView tv;
tv.AfterSelect += new TreeViewEventHandler(tv_AfterSelect);
//Button: tv.SelectedNode = tv.SelectedNode.NextVisibleNode;
//Butt……
[/Quote]

tv.SelectedNode = tv.SelectedNode.NextVisibleNode;
tv.SelectedNode = tv.SelectedNode.PrevVisibleNode;

这两句基本可以实现我要的功能。

但如果到了第一个父节点,tv.SelectedNode = tv.SelectedNode.PrevVisibleNode;就会出错
到了最后一个子节点 tv.SelectedNode.NextVisibleNode;也会出错。

怎样判断 是第一个父节点 和最后一个 子节点呢?
yxy10072510329 2010-10-21
  • 打赏
  • 举报
回复
记住3和4的主键,在你的treeview数据结构中调整他们就好了,逻辑要自己整理一下
sprc_lcl 2010-10-21
  • 打赏
  • 举报
回复
            TreeView tv;
tv.AfterSelect += new TreeViewEventHandler(tv_AfterSelect);
//Button: tv.SelectedNode = tv.SelectedNode.NextVisibleNode;
//Button: tv.SelectedNode = tv.SelectedNode.PrevVisibleNode;
}

void tv_AfterSelect(object sender, TreeViewEventArgs e)
{
e.Node.ExpandAll();
}
liuwei2500 2010-10-21
  • 打赏
  • 举报
回复
如果是要源码没有,要思路还可以,点击3之后,你可以查找它的下一个,貌似是nextslibing
找到就好,没找到你要找这个节点的父节点,用父节点的nextslibing如果没找到那么就是最后一个节点,如果有,那么就要选中,再点就要在当前的父节点下面找子节点了。

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧