Treeview的选中节点,高亮显示。
但在失去焦点的时候,不显示
如果设置了TreeView.HideSelection:=False;
则在失去焦点的时候为灰色显示
现在我希望在失去焦点的时候依然可以普通的高亮显示,如windows默认的蓝色,
请问该如何做。谢谢
但在失去焦点的时候,不显示
如果设置了TreeView.HideSelection:=False;
则在失去焦点的时候为灰色显示
现在我希望在失去焦点的时候依然可以普通的高亮显示,如windows默认的蓝色,
请问该如何做。谢谢
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if node.Selected then
begin
TreeView1.Canvas.Brush.Style := bsSolid;
TreeView1.Canvas.Brush.Color := clRed;
end;
end;
这位大哥,clRed是固定的,我现在想要的是系统自己的highlight,这样可以随着系统设定变化原来是clHighlight,但是用这个在失去焦点时一样会变灰……
那个点啊……累死我了,死都对不上……
关键delphi用psDot居然点是两个像素,要用pmNotXor自己去中和,但是感觉还是比默认的点线的点的间隔大……,这宽设定单位是Int,我已经是1了,无语……
自画过程是不分state了
难道 失去焦点 时,控件会自行画(没有通过自画过程)一下
begin
Canvas.Brush.Style := bsFDiagonal;
Canvas.Brush.Color := clHighlight;
Canvas.Font.Color := clHighlightText;
end;
将style强行设置为前台窗口,就可以了,不然就和默认的是一样的了……
ok。可以结了