我有一个 TListView 和 TPopupMenu,当我右键单击一个 TListItem 时,我想显示一个上下文菜单。我通过分配组件尝试了“AutoPopup”,但是在右键单击时仅显示 PopupMenu 并且未选择想要的元素。所以我尝试使用“OnMouseDown”,但我们需要单击并再次单击以显示所需项目的菜单。第一次单击是选择项目,第二次显示菜单。但我只想一键完成这两件事。你对这个问题有什么想法吗?
谢谢你。
我有一个 TListView 和 TPopupMenu,当我右键单击一个 TListItem 时,我想显示一个上下文菜单。我通过分配组件尝试了“AutoPopup”,但是在右键单击时仅显示 PopupMenu 并且未选择想要的元素。所以我尝试使用“OnMouseDown”,但我们需要单击并再次单击以显示所需项目的菜单。第一次单击是选择项目,第二次显示菜单。但我只想一键完成这两件事。你对这个问题有什么想法吗?
谢谢你。
我相信这段代码可以解决问题:
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;
首先在表单中添加一个 TPopUpMenu 并定义要在此显示的项目(在 delphi 2010 中双击弹出菜单图标进入项目编辑器)
其次将TListView中的PopUpMenu项设置为新创建的TPopUpMenu。
如果两者设置正确,当您右键单击 TListView 时,您将看到已定义的项目,并从其 On-Click 事件中触发它们
问题解决了。正如预期的那样,我使用的是 TPopUpActionaBar,所以必须使用简单的 TPopupMenu 使用 TPopUpMenu 时,没问题!(请原谅我的英语不好!)谢谢。