http://bbs.justep.com/forum.php?mod=viewthread&tid=4561
根据这里面提供的控制鼠标右键定位当前点击节点的方法,在实际使用时,在空白处点击右键也同样能够弹出自定义右键菜单。
我想在空白处点击右键时不想弹出自定义右键菜单,于是做了如下修改:
procedure TMAINFORM.DataTreeView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
pNode:TTreeNode;
i:Integer;
begin
if Button = TMouseButton.mbRight then
begin
try
pNode := TDataTreeView(Sender).GetNodeAt(x,y);
pNode.Selected := True;
except
for i := 0 to PopupMenu3.Items.Count do
begin
PopupMenu3.Items.Visible:= false;
end;
end;
end;
end;