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

时间:2011-04-12 02:47:14

标签: delphi virtualtreeview tvirtualstringtree

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

from gray color to red color

2 个答案:

答案 0 :(得分:6)

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

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

如果不是这样,那么调整树控件的toUseBlendedSelection属性中的一个值,可能是ColorsFocusedSelectionColor。但请不要轻易做出这样的改变;用户通过OS选项选择了选择颜色,因此您可能不应该更改它。如果你使用不同的颜色,请确保无论你选择什么新颜色,文字仍然可读。

答案 1 :(得分:2)

您可以将treeview的选项toHideFocusRectangle设置为true,并在几个绘制事件之一中自己绘制焦点矩形(基本上它足以使用OnBeforeCellPaint)。