让TreeView控件支持多选

本文探讨了使用微软自带的TreeView控件实现多选功能的方法。虽然该控件本身不支持多选,但通过结合两篇参考资料中介绍的技术,可以利用keydown和keyup事件设置和清除选择模式,并使用集合变量记录被选中的节点。

微软自带的Treeview控件不支持同时选多个节点,要实现这个也有办法。我本来想实现的,但是时间有限,想想还是像资源管理器那样用Listview来做多选吧。不过大致摸通了的思路,简单记在这里。主要来自以下两篇文章:

  1. http://topic.csdn.net/t/20051214/08/4457901.html的1
  2. http://www.vbaccelerator.com/home/VB/Code/Controls/TreeView/Multi-Select_TreeView/article.asp的iterateSelectBetween部分

第1个帖子里介绍了如何让树类记住当前选择节点的模式的方法,我觉得挺好的,主要是在keydown事件里设置模式、在keyup事件里清除模式。第2个帖子里则介绍了如何用集合变量来记住当前所有被选的节点,以及如何在ctrl或shift或没键按下时,切换当前所选的键的状态(是否加入集合,是否更改显示颜色)。

这2个帖子都不能直接用,第1个帖子的问题在于没有shift的代码,另外control时颜色变化得有点不对头,另外也没讲怎么记住所有保存的变量;第2个帖子的问题在于它使用的不是微软的treeview,而是自己开发的vbAccelerator TreeView Control(http://www.vbaccelerator.com/home/VB/Code/Controls/TreeView/TreeView_Control/article.asp)并且还用的是他自己开发的imagelist控件。感觉用别人的控件还是比较有风险的。

不管怎样,大致思路还是可行的,是为记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值