如何修改TVirtualStringTree中的焦点框颜色?

Leo*_*Leo 3 delphi virtualtreeview tvirtualstringtree

我需要修改TVirtualStringTree的焦点框的边框颜色,就像这张照片:

从灰色到红色

Rob*_*edy 6

您无法控制虚线焦点矩形的颜色.这是通过反转其绘制的颜色自动确定的.操作系统提供 - 并且树控件使用 - 为此提供API.(如果需要,您可以编辑源代码并将调用替换为DrawFocusRect您自己的函数.)

如果您正在谈论整个节点的颜色,那么首先检查以确保toUseBlendedSelectionpaint选项按您希望的方式设置.它默认关闭,但由于它在项目周围拖动框时使选择矩形看起来很酷,您可能已经打开它而没有意识到它对普通选定节点的作用.

如果不是这样,那么调整树控件Colors属性中的一个值,可能是FocusedSelectionColor或者UnfocusedSelectionColor.但请不要轻易做出这样的改变; 用户通过OS选项选择了选择颜色,因此您可能不应该更改它.如果你使用不同的颜色,确保文本仍然是对你选择的任何新的颜色可读.