我不知道这是一个错误还是什么,但如果我尝试禁用TTreeView
控件,所有节点都被选中(灰显)...可以采取任何措施来禁用该控件的输入而不更改选择吗?当然,节点并不是真正被选择的,它们只是视觉上选择的,但这很烦人。
这就是未应用主题时禁用控件的样子。您可以在几乎不干预项目绘制的情况下对其进行修改:
procedure TForm1.TreeView1AdvancedCustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage;
var PaintImages, DefaultDraw: Boolean);
begin
if (not TreeView1.Enabled) and
(GetWindowTheme(TreeView1.Handle) = 0) and (Stage = cdPrePaint) then begin
TreeView1.Canvas.Brush.Color := clWindow; // or TreeView1.Color
TreeView1.Canvas.Font.Color := clGrayText;
end;
end;
不幸的是State
从不包含“cdsDisabled”或“cdsGrayed”(我没有调查),因此代码测试树视图是否启用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)