当前位置:编程学习 > Delphi >>

delphi listview 右键菜单

listview为报表形式,在mousedown中我加了右键菜单,想实现上下记录交换。右键菜单有四条:移到最上,上移一行……。右击时,根据记录位置自动设置菜单里的enable,但发现菜单总是晚一步
追问:

我的想法是这样的,在ListView中右击第一行时,菜单中的“移到最上”和“上移一行”的Enable应为False;

在ListView的MosesDown中:

  if (Button=mbRight) and (ListView1.ItemIndex>-1) then
  begin
    ListView1.PopupMenu :=nil;
    if ListView1.ItemIndex =0 then
      PopupMenu1.Items[0].Enabled :=False
    else
      PopupMenu1.Items[0].Enabled :=True;
    ListView1.PopupMenu :=PopupMenu1;
  end;

 

运行后,结果是这样的,第一右击第一行,没反应,第二次点击任何一行,菜单的第一项均为灰,

菜单晚一步的意思就是你想要的结果总是在下一次右击时出现本应这次出现的结果。

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,