treeView控件问题~~在线等

LVOLCANO 2003-10-16 02:49:01
在treeView控件中,我右击其中的选项,弹出右键菜单,
要求其右键菜单的焦点在选中的选项上,
而不是只要我选中一个选项,在treeview控件中的其他位置右击都会弹出菜单
怎么做?
...全文
56 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnhb 2003-10-17
  • 打赏
  • 举报
回复
mark
zzh54zzh 2003-10-17
  • 打赏
  • 举报
回复
procedure TUserManageForm.LstRegManagerMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
{ 在User TreeView上点右键时的处理过程 }
var
vNode: TTreeNode;
begin
if Button = mbRight then // 如果是右键
begin
vNode := lstRegManager.GetNodeAt(x, y); // 在x,y的位置上找这个节点
if vNode <> nil then // 如果有选定的节点
begin
vNode.Selected := True;
pmUserManager.PopupFromCursorPos; // 弹出菜单
end;
end;
end; {LstRegManagerMouseDown}
hmzgz81 2003-10-16
  • 打赏
  • 举报
回复
关注ing!!!!!!!
delphi_xizhousheng 2003-10-16
  • 打赏
  • 举报
回复
RightClickSelect:=True
LVOLCANO 2003-10-16
  • 打赏
  • 举报
回复
坐标转换怎么搞?
IORILI 2003-10-16
  • 打赏
  • 举报
回复
好像在treeview控件中点击右键不能选中节点,所以要根据GetNodeAt(x,y)判断当前鼠标位置是不是选择的项。
Delphi_Li 2003-10-16
  • 打赏
  • 举报
回复
应该处理MouseUp事件,而不是MouseDown事件。你可以在资源管理器中试一试!!!然后通过GetNodeAt方法得到鼠标所在位置是否有节点,注意这里可能要进行坐标转换,如果有就使用PopupMenu的Pop方法显示弹出菜单!!!
iBear 2003-10-16
  • 打赏
  • 举报
回复
象楼上说的
应该在mousedown事件中手工的显示popmenu
上海老李 2003-10-16
  • 打赏
  • 举报
回复
处理TREEVIEW的MOUSEDOWN,如果是右键,就先
var
tn:ttreenode;
begin
tn:=treeview.selected.data;
如果要想好的应用,应是用一个
type=record
id:integer;
name:string;
end;来实现才行
menu.add(tn.name);
popmenu.pop;
tigerhohoo 2003-10-16
  • 打赏
  • 举报
回复
使用GetNodeAt(x,y)判断当前鼠标位置是不是选择的项.

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧