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