我有一个与 TTreeView 关联的 TPopupMenu,但我现在只想在用户单击特定节点时调用(弹出)菜单。那么我如何在树视图中弹出上下文菜单但仅在某些特定的树节点中?
问问题
2809 次
2 回答
11
使用事件中的Handled
参数OnContextPopup
。通过将此参数设置为 True,您将禁止显示上下文菜单。以下代码显示了如何TTreeNode
从传递给事件的光标位置获取 ,OnContextPopup
并且仅当您右键单击TTreeNode
与顶部不同的位置时才会显示弹出菜单。
procedure TForm1.TreeView1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
if TreeView1.GetNodeAt(MousePos.X, MousePos.Y) = TreeView1.TopItem then
Handled := True;
end;
于 2012-04-15T19:56:36.113 回答
1
这可能会有所帮助:
procedure TForm1.TreeView1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
var node : TTreeNode;
begin
node := TreeView1.GetNodeAt(MousePos.X, MousePos.Y);
if not Assigned (node) then
Abort;
end;
于 2014-01-10T04:50:42.190 回答