TreeView中Itempopulate事件的疑惑

Yaksa 2002-09-18 02:39:42
Itempopulate不是“第一次”展开时触发么?为什么我这里每次展开时都会触发?
...全文
185 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
banalman 2002-09-21
  • 打赏
  • 举报
回复
同意pufan
pufan 2002-09-21
  • 打赏
  • 举报
回复
哈,那是你在SelectionChanging中写代码的关系.
Yaksa 2002-09-21
  • 打赏
  • 举报
回复
可是ExpandItem会触发ItemPopulate事件,
也就是每次重新展开节点时都执行ItemPopulate里的代码,
所以,所以,唐朝就有了2个叫李白的大诗人,
当然杜甫也有2个。
这个矛盾怎么解决呢?
pufan 2002-09-21
  • 打赏
  • 举报
回复
一般是或双击展开或选中hasbuttons选项,让用户点击加号展开.
要实现“节点获得焦点立即展开”可在clicked事件中写:
this.expanditem(handle)
Yaksa 2002-09-21
  • 打赏
  • 举报
回复
请问你们要实现“节点获得焦点立即展开”用的什么方法?
难道不是用ExpandItem么?
Yaksa 2002-09-20
  • 打赏
  • 举报
回复
欧,我知道了,原来是我在SelectionChanging事件里写了一句
this.ExpandItem(newhandle)
真是奇怪,ExpandItem竟然会触发ItemPopulate事件
hzhxxx 2002-09-18
  • 打赏
  • 举报
回复
展开以后不在触发这个事件!
warchild 2002-09-18
  • 打赏
  • 举报
回复
你把该事件的代码先屏蔽,换messagebox("","")
看看是否还有,
sytrade50 2002-09-18
  • 打赏
  • 举报
回复
是每次都触发的
如果不想触发的话,可以通过先删除, 例子:
If GetItem(handle, ltvi_articlass) = -1 Then Return
ls_data=string(ltvi_articlass.data)
if ltvi_articlass.children then
ll_handle = tv_1.FindItem(ChildTreeItem!, handle)
do while ll_handle > -1
tv_1.DeleteItem(ll_handle)
ll_handle = tv_1.FindItem(ChildTreeItem!, handle)
LOOP
end if
pufan 2002-09-18
  • 打赏
  • 举报
回复
应该没有问题,贴出你的代码
juwuyi 2002-09-18
  • 打赏
  • 举报
回复
是的啊,
可能是你代码写的有问题。
gungod2000 2002-09-18
  • 打赏
  • 举报
回复
对于'每一个接点'是第一次展开时触发

1,080

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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