根据鼠标在Delphi TListView控件中的哪一列显示不同的弹出菜单



我有一个Delphi 6应用程序,它有一个TJvListView控件。我有一个通过控件的PopupMenu属性绑定到该控件的弹出菜单。我想做的是显示一个不同的弹出菜单,根据用户右键单击时鼠标悬停在哪一列,如果当前列不需要弹出菜单,则可以选择完全不显示弹出菜单。我该怎么做?

多亏了Remy Lebeau在TListView中进行原位编辑的详细示例,我知道除了一条皱纹外,鼠标在哪行和哪列。我确定当前行和列的鼠标按下事件发生在退出弹出菜单后

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

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

最新更新