我在表单上有一个TTreeView
,它有很多TTreeViewItem
个节点。
我想仅在用户扩展其中一个TTreeViewItem
节点时调用某些函数(这并不一定意味着用户“选择”其中一个节点)。
我尝试使用以下处理程序捕获此事件:
TTreeView.OnChange
TTreeView.OnClick
TTreeView.OnMouseDown
TTreeViewItem.OnClick
TTreeViewItem.OnMouseDown
但是当我只点击可扩展节点左侧的可爱小箭头时,似乎没有触发这些。
当用户扩展 TTreeViewItem
时,是否有通知方式?
答案 0 :(得分:1)
不幸的是,FireMonkey中的TTreeView
和TTreeViewItem
在展开/折叠节点时不会公开任何公共事件。
我唯一看到的是点击节点的展开/折叠按钮时的私有TTreeViewItem.DoButtonClick()
事件处理程序,以及当节点StartTriggerAnimation('IsExpanded')
时发送到同一按钮的IsExpanded
个通知财产改变价值。
实际的按钮对象是从TTreeView
的样式获得的,所以也许有一种方法可以对该对象进行子类化,这样你就可以覆盖StartTriggerAnimation()
,或者至少为它添加一个隐藏的子对象默认的TFmxObject.StartTriggerAnimation()
实现通知子控件发送到父控件的相同触发器。