我使用 TVirtualStringTree 作为网格,效果很好。
当用户将鼠标放在单元格上时,我正在使用树视图提示功能来显示提示。 我不得不将 HintMode 更改为 hmHint,因为无论单元格文本长度如何,我都希望我的提示出现。
我现在要做的是根据鼠标在单元格内的位置显示不同的提示。
在使用 OnGetHint 事件显示提示之前,我可以做到这一点。我的问题是仅在用户将鼠标移动到另一个单元格时才会引发此事件。
我看不到在提示显示和鼠标在同一单元格内移动时更新提示的方法
我已经使用应用程序的 OnShowHint 事件查看了其他控件的建议,但它们似乎只是使提示消失并且不再显示。
有人有什么想法吗?
谢谢
更新
经过一番调查后,我发现它可以帮助某人提出解决方案:
CMHintShow 方法将 HintInfo 记录的 CursoRect 字段设置为单元格的边界。这似乎阻止了 VCl 再次触发提示代码,直到鼠标移出该矩形 (TApplication.HintMouseMessage)。
如果我将 CursorRect 设置为小于单元格边界的值,则提示将更新。我在几个地方出于不同的目的使用了 VT,所以我不能直接进行这些更改。获得不需要此更改的解决方案会很好。