有个问题想请教大家:
我在使用TTreeView时想实现点右键然后弹出菜单删除一个节点,就象windows资源管理器左边的树一样.我设置了RightClickSelect为true,但是无效,必须点左键才能选中节点,为什么? 先谢了.
我在使用TTreeView时想实现点右键然后弹出菜单删除一个节点,就象windows资源管理器左边的树一样.我设置了RightClickSelect为true,但是无效,必须点左键才能选中节点,为什么? 先谢了.
treeview1.selected.delete;
但是好象这样不行,一开始我就是如jjaacc()所说的这样做的.被delete掉的是上次点击左键时所选择的节点,而不是点右键所选的节点,也就是即使将RightClickSelect设置为true时,单击鼠标右键时treeview1.selected并不会发生变化,有时间敬请各位亲自试试,我用的是Delphi6.0.
多谢!
这样不知对不对?
正确编码如下:
//TreeView的OnMouseDown事件
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var FDelNode:TTreeNode;
begin
if Button = mbRight then
begin
FDelNode:= TreeView1.GetNodeAt(X,Y);
if Assigned(FDelNode) then
begin
FDelNode.Selected := True;
PopupMenu1.Popup(TreeView1.ClientOrigin.X+X,
TreeView1.ClientOrigin.Y+Y);
end;
end;
end;procedure TForm1.delete1Click(Sender: TObject);
begin
TreeView1.Selected.Delete;
end;