0

我有一个具有 TJvListView 控件的 Delphi 6 应用程序。我有一个通过控件的 PopupMenu 属性绑定到该控件的弹出菜单。我想做的是根据用户在右键单击时将鼠标悬停在哪个列上显示不同的弹出菜单,如果当前列不需要,则附加选项根本不显示弹出菜单。我怎样才能做到这一点?

感谢 Remy Lebeau 在TListView 中进行就地编辑的详细示例,我知道鼠标在哪一行和哪一列上,除了一个皱纹。我确定当前行和列的鼠标按下事件在弹出菜单退出后发生。

我现在需要知道两件事。首先,如何在鼠标右键单击后弹出菜单显示之前触发一些事件,以便我可以记录当前列表视图的行和列并在需要时抑制弹出菜单,其次,如何显示不同的基于当前列的弹出窗口。我希望避免编写一堆迷你表单,而不是使用 TListView PopupMenu 属性和支持代码。有没有一个简单的解决方案,也许我应该在 TJvListView 周围创建一个子类中的一些花哨的步法?

4

1 回答 1

0

您可以在 mousemove 而不是 mousedown/Click 中执行检测,并根据情况更改弹出菜单。您还可以删除任何弹出菜单并根据需要在 mousedown 中通过 p.pupup 调用希望的菜单。

于 2012-11-21T00:52:27.480 回答