关于ListView点击了某行第一次触发OnSelectItem,第二次再次点击该行则无触发OnSelectItem事件问题。。

zoroz 2009-03-29 10:54:56
ListView点击一行,
触发一次OnSelectItem,
第二次回来再点同样一行则不会触发OnSelectItem事件,
请问,有没有解决方法,因为我需要不管每次点击一行都能获得触发事件,其他的事件也行。
...全文
328 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kye_jufei 2009-03-30
  • 打赏
  • 举报
回复
在onclick事件中寫
bdmh 2009-03-30
  • 打赏
  • 举报
回复
用onclick事件吧
zoroz 2009-03-30
  • 打赏
  • 举报
回复
onclick经过测试能用,先谢谢楼上几位了。

如果一定要用OnSelectItem,它会执行2次,看来改变焦点后还会触发一次OnSelectItem。

procedure TForm1.lstVSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
begin
if Selected=False then Exit;
ShowMessage(Item.Caption);
//下面2个改变焦点还会再调用一次OnSelectItem
// lstV.ItemIndex:=-1;
lstV.Selected:=nil;
end;


fengsh998 :)
有没有不加布尔参数,只改变什么属性就能避免第二次调用OnSelectItem吗?实在没有就算了 3Q
明天上班再来结贴,谢谢大家。
genispan 2009-03-29
  • 打赏
  • 举报
回复
用ONCLICK吧 点击之后 判断哪行被选中
边缘998 2009-03-29
  • 打赏
  • 举报
回复
如果你实在喜欢OnSelectItem,我想这样应该可以,你点击的时候第一次触发了OnSelectItem这个事件,在这个事件最后把点击项的焦点去掉,这样相当于没有再次选中这项,这样你再次点击的时候就会再次确发
边缘998 2009-03-29
  • 打赏
  • 举报
回复
这个好像ONCHANGE事件一样,如果点同样的一项两次是不会触发的,但ONCLICK就可以.只要有点击就触发.

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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