请教各位大哥,在使用treeview时           -----A
          |    |  
          |    ---B
          |
          |
           -----C
               |
               ---D
我想在选中 C 单击右健时定义菜单选项事件(上移,下移)可以将C下面的子目录D 上移到A下面去 ,同理在右健也可将B 下移到C下面去, 用到 哪些方法,事件,还望给位高手指点,有高分,谢谢,

解决方案 »

  1.   

    拖放.
    http://www.vckbase.com/document/viewdoc.asp?id=340
      

  2.   

    直接修改Item的Parent属性就可以了。
      

  3.   

    codeproject(快乐的小熊) 
    大哥有没有delphi的源码
    谢谢Firec(Firec)  
    大哥能否说得更详细一些
    谢谢
      

  4.   

    试试unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ComCtrls, Menus;type
      TMainForm = class(TForm)
        TreeView1: TTreeView;
        PopupMenu1: TPopupMenu;
        N1: TMenuItem;
        N2: TMenuItem;
        procedure FormCreate(Sender: TObject);
        procedure TreeView1ContextPopup(Sender: TObject; MousePos: TPoint;
          var Handled: Boolean);
        procedure N1Click(Sender: TObject);
        procedure N2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      MainForm: TMainForm;implementation{$R *.dfm}procedure TMainForm.FormCreate(Sender: TObject);
    var
      Node: TTreeNode;
    begin
      Node := TreeView1.Items.AddChild(nil, 'A');
      TreeView1.Items.AddChild(Node, 'B');  Node := TreeView1.Items.AddChild(nil, 'C');
      TreeView1.Items.AddChild(Node, 'D');
      TreeView1.ShowButtons := False;
      TreeView1.FullExpand;
    end;procedure TMainForm.TreeView1ContextPopup(Sender: TObject;
      MousePos: TPoint; var Handled: Boolean);
    var
      Node: TTreeNode;
      pt: TPoint;
    begin
      Node := TreeView1.GetNodeAt(MousePos.X,  MousePos.Y);
      if Node <> nil then
      begin
        TreeView1.Selected := Node;
        pt := TreeView1.ClientToScreen(MousePos);
        PopupMenu1.Popup(pt.X, pt.Y);
      end;
    end;procedure TMainForm.N1Click(Sender: TObject);
    begin
      if TreeView1.Selected.Parent <> nil then
        TreeView1.Selected.MoveTo(TreeView1.Selected.Parent, naInsert); 
    end;procedure TMainForm.N2Click(Sender: TObject);
    begin
      if TreeView1.Selected.Parent <> nil then
        TreeView1.Selected.MoveTo(TreeView1.Selected.Parent.getNextSibling, naAdd); 
    end;end.
      

  5.   

    编译通过,xzgyb(老达摩) 
    大哥,万分感谢。能否给小弟留个email,希望能够经常向您请教