求一TreeView,对节点进行 添加,修改,删除,移动操作的详细代码。谢谢!

解决方案 »

  1.   


          //右键选取
          private void treeMailView_MouseDown(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    TreeNode tn = treeMailView.GetNodeAt(e.X, e.Y);
                    if (tn != null)
                    {
                        treeMailView.SelectedNode = tn;
                    }
                }
                if (e.Button == MouseButtons.Left)
                {
                    TreeNode tn = treeMailView.GetNodeAt(e.X, e.Y);
                    if (tn != null)
                    {
                        Tn = tn;
                    }
                }
            }
    //拖拽
            private Point Position = new Point(0, 0);
            private void treeFileView_ItemDrag(object sender, ItemDragEventArgs e)
            {
                DoDragDrop(e.Item, DragDropEffects.Move); 
            }        private void treeFileView_DragEnter(object sender, DragEventArgs e)
            {
                if (e.Data.GetDataPresent(typeof(TreeNode)))
                {
                    e.Effect = DragDropEffects.Move;
                }
                else
                    e.Effect = DragDropEffects.None;        }        string filePath = Application.StartupPath.ToString() + "\\MyFiles\\";
            private void treeFileView_DragDrop(object sender, DragEventArgs e)
            {
                TreeNode myNode = null;
                if (e.Data.GetDataPresent(typeof(TreeNode)))
                {
                    myNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
                }
                else
                {
                    MessageBox.Show("error");
                }            Position.X = e.X;
                Position.Y = e.Y;
                Position = treeFileView.PointToClient(Position);
                TreeNode DropNode = treeFileView.GetNodeAt(Position);
                if (DropNode.Parent == myNode || DropNode == myNode)
                {            }
                else if (DirAndFileOperator.IsFile(DropNode))
                {
                
                }
                else
                {
                    //DirAndFileOperator.MoveFolder(filePath + myNode.FullPath, filePath + DropNode.FullPath + @"\" + myNode.Name);
                    TreeNode DragNode = myNode;
                    myNode.Remove();
                    DropNode.Nodes.Add(DragNode);
                }
                treeFileView.SelectedNode = DropNode;
                DropNode.Expand();
            }        private void treeFileView_DragOver(object sender, DragEventArgs e)
            {
                TreeNode myNode = null;
                if (e.Data.GetDataPresent(typeof(TreeNode)))
                {
                    e.Effect = DragDropEffects.Move;
                    myNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
                }
                else
                    e.Effect = DragDropEffects.None;
                Position.X = e.X;
                Position.Y = e.Y;
                Position = treeFileView.PointToClient(Position);
                TreeNode DropNode = treeFileView.GetNodeAt(Position);
                treeFileView.SelectedNode = DropNode;
            }
      

  2.   

    http://www.componentart.com/webui/demos/demos_control-specific/treeview/programming_client/add_removeDisable/WebForm1.aspx
      

  3.   

    Default.aspx.cs文件:
    using System.Xml;
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(Server.MapPath("data.xml"));
            XmlNode node = doc.DocumentElement;
            InitTree ( this.TreeView1.Nodes, node );
        }    private void InitTree ( TreeNodeCollection nodes, XmlNode node )
        {
            XmlNodeList nodeList = node.ChildNodes;
            foreach ( XmlNode subNode in nodeList )
            {
                TreeNode tmpNode = new TreeNode ();
                tmpNode.Text = ((XmlElement)subNode).GetAttribute("name");
                tmpNode.NavigateUrl = ((XmlElement)subNode).GetAttribute("url");
                nodes.Add ( tmpNode );
                InitTree ( tmpNode.ChildNodes, subNode );
            }
        }
    }data.xml文件:
    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <baidu name="Baidu" url="http://www.baidu.com">
        <hao name="Hao" url="http://www.hao123.com">
          <wangyi name="Wangyi" url="http://www.163.com">
          </wangyi>
        </hao>
        <sina name="Sina" url="http://www.sina.com.cn">
          <qq name="QQ" url="http://www.qq.com">
          </qq>
        </sina>
      </baidu>
    </root>