起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 191|回复: 2

【结贴】[问题]关于控制鼠标右键定位DataTreeView当前点击的节点的一个问题**

[复制链接]
发表于 2009-5-25 11:20:16 | 显示全部楼层 |阅读模式
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;

运行的情况是:在空白处点击右键同样可以弹出自定义右键菜单。是不是我用的方法不对?还是另外有方法控制?
回复

使用道具 举报

发表于 2009-5-25 11:26:45 | 显示全部楼层
楼主,你自己跟踪一下pNode的值,根据这个对象返回的是nil还是非nil来控制是否弹出右键。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-25 11:50:50 | 显示全部楼层
谢谢,结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-20 23:13 , Processed in 0.035892 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表