我(更多时间)尝试在单击 TreeView 的项目时执行操作,请参阅:
procedure TForm1.TreeView1Click(Sender: TObject);
begin
if treeview1.Selected.AbsoluteIndex=1 then
begin
showmessage('selecionado');
end;
end;
如果用户单击 TreeView 的索引 1,此代码将显示一条消息,问题如下:如果用户选择索引 1,将显示该消息,但是之后,用户单击 TreeView 的空白区域listview 消息仍会执行,因为该项目仍处于选中状态。如何使事件仅在用户单击相应项目时运行?
最佳答案
不要使用OnClick
,只要单击TTreeView
(不仅仅是单击节点时)就会发生这种情况。相反,请使用TTreeView.OnChange
事件,它向您传递节点:
procedure TForm3.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if Assigned(Node) then
if Node.AbsoluteIndex = 1 then
ShowMessage('selecionado');
end;
关于delphi - 仅当单击 TreeView 节点时才执行事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16754561/