我,(更多时间),当我点击树视图的项目时尝试执行操作,请参阅:
procedure TForm1.TreeView1Click(Sender: TObject); begin if treeview1.Selected.AbsoluteIndex=1 then begin showmessage('selecionado'); end; end;
如果用户单击树视图的索引1,此代码将显示一条消息,问题如下:如果用户选择索引1,将显示该消息,但在此之后,用户单击列表视图的空白区域消息仍然执行,因为该项仍然被选中.如何仅在用户单击相应项目时才能运行事件?
解决方法
不要使用OnClick,只要单击TTreeView(不仅在单击节点时),就会出现OnClick.而是使用
TTreeView.OnChange
事件,它将通过您的节点:
procedure TForm3.TreeView1Change(Sender: TObject; Node: TTreeNode); begin if Assigned(Node) then if Node.AbsoluteIndex = 1 then ShowMessage('selecionado'); end;