var HitTest : THitTests; begin inherited; HitTest := TreeView.GetHitTestInfoAt(x,y); if htNowhere in HitTest then begin Treeview.PopupMenu := nil; Exit; end; if Button = MBRight then begin Treeview.PopupMenu := PopupMenu; if Treeview.Selected.Parent = nil then PopupMenuItemA.Enabled := False else PopupMenuItemA := True; end; end;
以上是MouseDown事件代码,很粗,实际应用还需要细化 Treeview.Selected.Parent = nil 表示根节点htNowhere in HitTest 表示单击树节点外
个人以为:可以根据选中的结点的字符串来判断 if treeView1.select.text='AAAAA' then begin end else begin end;
HitTest : THitTests;
begin
inherited;
HitTest := TreeView.GetHitTestInfoAt(x,y);
if htNowhere in HitTest then
begin
Treeview.PopupMenu := nil;
Exit;
end;
if Button = MBRight then
begin
Treeview.PopupMenu := PopupMenu;
if Treeview.Selected.Parent = nil then
PopupMenuItemA.Enabled := False
else
PopupMenuItemA := True;
end;
end;
Treeview.Selected.Parent = nil 表示根节点htNowhere in HitTest 表示单击树节点外
if treeView1.select.text='AAAAA' then
begin
end else
begin
end;