【发布时间】:2016-09-23 06:44:53
【问题描述】:
我正在寻找禁用适当节点的方法。
假设我创建了简单的 treeview 结构,如下所示:
- 父 1 (禁用)
- 父 2
- 孩子 1
- 孩子 2 (禁用)
到目前为止,我已经找到了解决方法,但它仍然无法正常工作。我使用OnChanging 事件处理程序:
procedure TForm1.TreeViewChanging(Sender: TObject; Node: TTreeNode;
var AllowChange: Boolean);
begin
if (Node.Text = 'Parent 1') or (Node.Text = 'Child 1') then
AllowChange := False;
end;
它可以工作,因为我无法单击此节点,但问题是在以这种方式“禁用”节点后,Parent 1 和 Child 1 节点的颜色与其他节点相同。有没有办法改变这个节点的颜色(灰色)?或者您知道在 TTreeView 组件中禁用节点的另一种方法?
【问题讨论】:
-
将节点的
Enabled属性设置为False。 -
@DavidHeffernan 我已经尝试过了,但不幸的是它不适用于我的情况。它什么都不做......
-
XP 可能吗? TVIS_EX_DISABLED 从 Vista 开始。或者也许没有运行时主题..
-
@astack - 您可以自己绘制项目。您可能应该找到为什么“启用”不起作用。您是否尝试过一个全新的项目?
-
找到解决方法到底是什么?阴影的细微差别?自己绘制项目并以您想要的任何阴影或颜色绘制禁用的项目(Windows 使用用户应该已经熟悉的默认启用/禁用颜色)。启用工作正常;它会阻止选择并更改项目的阴影以显示它已禁用。
标签: delphi treeview nodes disabled-control