各位兄台:树型控件的一个BUG?还是逻辑错误?请赐教
由于应用中的问题,发现用TreeView控件的ExpandItem()函数展开某个节点时,总会触发ItemPopulate事件(据说:只在第一次展开时才触发,以后就不触发了)。
试验如下:
建立一个窗体w_1
在w_1上放一个树型控件tv_1[HasButtons,HasLines,LinesAtRoot三个属性都选上]
在树型控件旁边放两个按钮cb_1(展开),cb_2(合起)
(1)在w_1的Open事件中写代码:
treeviewitem tv_root
tv_root.label="111"
tv_root.children=true
tv_1.insertitemfirst(0,tv_root)
(2)在tv_1的ItemPopulate事件中写代码:
treeviewitem tv_item
tv_item.label="222"
tv_1.insertitemfirst(1,tv_item)
tv_item.label="333"
tv_1.insertitemfirst(1,tv_item)
(3)cb_1(展开)的click事件中写代码
long Item_handle//句柄
Item_handle=tv_1.findItem(CurrentTreeItem!,0)
tv_1.ExpandItem(item_handle)//展开当前节点
(4)cb_2(合起)的click事件中写代码
long Item_handle//句柄
Item_handle=tv_1.findItem(CurrentTreeItem!,0)
tv_1.CollapseItem(item_handle)//合起当前节点
试验如下:
当我使用鼠标展开、合起节点时,一点问题都没有。当我把焦点放在根结点上时,交替按“展开”“合起”按钮后,就会出现节点下面重复加入了字节点。
【各位帮忙做做试验看,有无解决方法】