treeview如何实现快捷菜单

tomjoule 2002-09-05 09:39:56
我对treeview的用法知道的较少,想实现当用鼠标右击不同节点时弹出不同的快捷菜单.
多谢啦!
...全文
17 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
whitehare 2002-09-05
  • 打赏
  • 举报
回复
...
type
TForm1 = class(TForm)
ListView1: TListView;
ImageList1: TImageList;
PopupMenu1: TPopupMenu;
mnu1: TMenuItem;
mnu2: TMenuItem;
mnu3: TMenuItem;
mnu4: TMenuItem;
procedure ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);


.
.
.

procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if listView1.Selected=nil then
mnu1.Enabled:=False
else
mnu1.Enabled:=True;
end;

当然你也可以做其他的判断,很简单吗?
stanely22 2002-09-05
  • 打赏
  • 举报
回复
1. 在TREEVIEW的MOUSEDOWN事件里,得到当前鼠标点击的位置(x,y)
2. 用treeview的GetNodeAt(x,y)得到点中的NODE
3. 根据NODE.text判断是点的哪个NODE
4. 在鼠标位置弹出popupmenu
我再加一条!
5.判断是哪一个结点之后,在mouseup事件中,判断是否是右键按下,如果是,就做:treeview1.PopupMenu.AutoPopup:=true;
你可以根据情况改写这条语句。给PopupMenu起特定的名字,在你需要时,将他改为true。
dupenf 2002-09-05
  • 打赏
  • 举报
回复
节点不同,菜单项目不同??
可以根据节点的handle,动态转换treeview的popmenu属性.
wyxy520 2002-09-05
  • 打赏
  • 举报
回复
1. 在TREEVIEW的MOUSEDOWN事件里,得到当前鼠标点击的位置(x,y)
2. 用treeview的GetNodeAt(x,y)得到点中的NODE
3. 根据NODE.text判断是点的哪个NODE
4. 在鼠标位置弹出popupmenu
9igogo 2002-09-05
  • 打赏
  • 举报
回复
放一个popupmenu控件
设制treeview的popupmenu为加入的即可

5,388

社区成员

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

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