双击右键以使用TListView显示PopUpMenu!

时间:2010-03-08 14:57:00

标签: delphi contextmenu popupmenu tlistview

我有一个TListView和TPopupMenu,我想在右键单击TListItem时显示一个上下文菜单。 我通过分配组件尝试了“AutoPopup”,但是在右键单击时,仅显示PopupMenu并且未选择所需元素。所以我尝试使用“OnMouseDown”,但我们需要再次单击并单击以显示所需项目上的菜单。第一次单击是选择项目,第二次单击显示菜单。 但我想只需点击一下即可完成这两件事。你对这个问题有所了解吗?

谢谢。

3 个答案:

答案 0 :(得分:1)

我相信这段代码解决了这个问题:

procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbRight then
    ListBox1.Perform(WM_LBUTTONDOWN, 0, MakeLParam(Word(X), Word(Y)));
end;

答案 1 :(得分:0)

首先在表单中添加TPopUpMenu并定义要在其上显示的项目(在delphi 2010中双击弹出菜单图标以进入项目编辑器)

其次将TListView中的PopUpMenu项设置为新创建的TPopUpMenu。

如果两者设置正确,当您右键单击TListView时,您将看到已定义的项目,并从其On-Click事件中触发它们

答案 2 :(得分:0)

问题解决了。正如所料,我使用的是TPopUpActionaBar,因此必须使用简单的TPopupMenu 使用TPopUpMenu时没问题! (请原谅我糟糕的英语!) 感谢。