TreeView未聚焦时的默认选择颜色



当TreeView未聚焦时,如何将TreeView的选定节点设置为默认的clHighlight颜色?我在CustomDrawItemAdvancedCustomDrawItem事件中尝试了这个代码——运气不好:

if (cdsSelected in State) then
Sender.Canvas.Brush.Color := clHighlight;

还试着改变了.HideSelection的性质,没什么区别,还是用那种很浅的灰色。我用的是D7。

发现的问题来源:

// does nothing, still grayed when losing focus
if (cdsSelected in State) then
Sender.Canvas.Brush.Color := clHighlight;
// works fine
if (cdsSelected in State) then
Sender.Canvas.Brush.Color := ColorToRGB(clHighlight);

由于某种原因,clHighlight颜色无法使用,可能是TTreeView代码中存在某种条件,该条件正在检查该颜色并执行不同的操作。

最新更新