3

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

从灰色到红色

4

2 回答 2

6

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

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

如果不是这样,则调整树控件Colors属性中的值之一,可能是FocusedSelectionColorUnfocusedSelectionColor。但请不要轻易做出这样的改变;用户已通过操作系统选项选择了选择颜色,因此您可能不应该更改它。如果您确实使用了不同的颜色,请确保文本对于您选择的任何新颜色仍然可读。

于 2011-04-12T04:24:12.623 回答
2

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

于 2011-04-12T05:37:00.777 回答