WinForm TreeView 复制到另外一个TreeView上

Johan.
博客专家认证
2014-07-12 02:12:08


期望实现效果:在点击左边目录结构,然后在右边显示出左边所选中项。
仅仅显示选中项。

尝试了很久一直都没能成功。
...全文
552 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Johan. 2014-07-16
  • 打赏
  • 举报
回复
冬瓜皮,熬水热敷。

进过多番摸索尝试,最终将问题解决了。
非常感谢 duanzi_peng 的指引,是:彭、鹏 吗?
这里把思路及代码共享:



如代码所示,我改变了最初的思路。
从最开始的找到选中项,然后放到右边去。
到全部放过去,删除未选中项,至此放佛一切都变得那么清晰。

最终实现效果。


最后感谢各位的指引,才让这个困难的问题最终得到解决,谢谢。
exception92 2014-07-16
  • 打赏
  • 举报
回复
引用 14 楼 S2T11Enterprise 的回复:
冬瓜皮,熬水热敷。 进过多番摸索尝试,最终将问题解决了。 非常感谢 duanzi_peng 的指引,是:彭、鹏 吗? 这里把思路及代码共享: 如代码所示,我改变了最初的思路。 从最开始的找到选中项,然后放到右边去。 到全部放过去,删除未选中项,至此放佛一切都变得那么清晰。 最终实现效果。 最后感谢各位的指引,才让这个困难的问题最终得到解决,谢谢。
朋;果断收藏了。
Johan. 2014-07-14
  • 打赏
  • 举报
回复
囧。。。...
Johan. 2014-07-14
  • 打赏
  • 举报
回复
哦,另外我没有做选中父节点时,将子节点选中。 只做了在选中子节点时,将父节点选中。
  • 打赏
  • 举报
回复
树中序遍历,自己查一下
Johan. 2014-07-14
  • 打赏
  • 举报
回复
这个效果是直接截图拼接的, 这是就最终希望的效果。
Johan. 2014-07-14
  • 打赏
  • 举报
回复
哦是这样的,选中的目的是为了在左边显示一个结构,
然后就清楚自己选中了那些文件。

如果不将根目录选中的话,好像就不能判断是否选中,
那样就无法将结构显示出来。
大概效果是这样的:

exception92 2014-07-14
  • 打赏
  • 举报
回复
其实这或许是个习惯的问题,如果根节点下的的所有子节点都选中,才会让根节点也选中;如果有一个子节点没选中,是不会让根节点选中的。全选就是子节点全部选中,如果一个子节点未选中,有什么理由让根节点也选中呢。
exception92 2014-07-14
  • 打赏
  • 举报
回复
如果 你仅仅是为了让 用户看到 这个父节点下有 子项 被选中而去选中父节点,但不去复制父节点的文本的话,那你就需要修改代码了。
Johan. 2014-07-14
  • 打赏
  • 举报
回复
这是我这边使用的方法:


调用方式:


但是发现代码在你这边运行起来完全正常,囧。。。。
我再调试下。
Johan. 2014-07-14
  • 打赏
  • 举报
回复
引用 5 楼 duanzi_peng 的回复:
http://download.csdn.net/detail/duanzi_peng/7632809


牛x,这个代码非常有用。
我下载下来运行了,是我想要的效果。

但是现在遇到个问题,一下是界面运行效果图。
我是直接将WinRAR安装目录的结构完整读取出来的。
我想你应该也装有压缩软件之类的软件吧。



然后我仔细比对了我们之间的代码,看起来区别或许是数据来源的不同。


tmd456 2014-07-14
  • 打赏
  • 举报
回复 1
遍历Node,再生成树
Johan. 2014-07-12
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
TreeNode.Nodes.Add(你选择的项);
我想可能会用到Nodes,不过具体用法以及拼装方式才是我们探讨的话题。
exception92 2014-07-12
  • 打赏
  • 举报
回复
TreeNode.Nodes.Add(你选择的项);

110,538

社区成员

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

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

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