zoukankan      html  css  js  c++  java
  • TreeView拖放

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;


    namespace WindowsFormsApplication7
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
      
           
            //保存前一个鼠标进入的节点
            private TreeNode MyOldNode;

            private void Form1_Load_1(object sender, EventArgs e)
            {
                 //添加树形视图子节点
            this.treeView1.Nodes.AddRange(
                 new TreeNode[]
                 {
                     new TreeNode("中国直辖市", new TreeNode[]
                     {
                        new TreeNode("北京市", new TreeNode[]
                        {
                            new TreeNode("东城区"), new TreeNode("西城区"),new TreeNode("朝阳区")
                        }),
                        new TreeNode("上海市", new TreeNode[]
                        {
                            new TreeNode("长宁区"),new TreeNode("黄埔区"), new TreeNode("浦东区")
                        }),
                        new TreeNode("重庆市", new TreeNode[]
                        {
                            new TreeNode("长寿区", new TreeNode[]
                            {
                                new TreeNode("云台镇"),
                                new TreeNode("凤城镇", new TreeNode[]
                                {
                                    new TreeNode("黄桷湾"),new TreeNode("关口")
                                })
                            }),
                            new TreeNode("渝北区"),new TreeNode("北碚区")
                        })
                     })
                 });
                 this.treeView1.AllowDrop = true;
                 this.treeView1.ExpandAll();
            }


            private void treeView1_DragEnter_1(object sender, DragEventArgs e)
            {
                //处理 treeView1控件DragEnter事件
                //获取节点的数据内容
                object MyData = e.Data.GetData(typeof(TreeNode));
                //如果节点有数据,拖放目标允许移动
                if (MyData != null)
                {
                    e.Effect = DragDropEffects.Move;
                }
                else
                {
                    e.Effect = DragDropEffects.None;
                }

                TreeView MyTreeView = (TreeView)sender;
                TreeNode MyNode = MyTreeView.GetNodeAt(treeView1.PointToClient(new Point(e.X, e.Y)));
                if (MyNode != null)
                {
                    //改变进入节点的背景色
                    MyNode.BackColor = Color.Blue;
                    //保存此节点,进入下一个时还原背景色
                    MyOldNode = MyNode;
                }
            }

            private void treeView1_DragOver_1(object sender, DragEventArgs e)
            {
                //处理 treeView1控件DragOver事件
                //修改鼠标进入节点的背景色,还原上一个节点的背景色
                TreeView MyTreeView = (TreeView)sender;
                TreeNode MyNode = MyTreeView.GetNodeAt(treeView1.PointToClient(new Point(e.X, e.Y)));
                if ((MyNode != null) && (MyNode != MyOldNode))
                {
                    MyOldNode.BackColor = Color.White;
                    MyNode.BackColor = Color.Blue;
                    MyOldNode = MyNode;
                }
            }

            private void treeView1_DragDrop_1(object sender, DragEventArgs e)
            {
                //处理 treeView1控件DragDrop事件
                TreeNode MyNode = (TreeNode)e.Data.GetData(typeof(TreeNode));
                TreeView MyTreeView = (TreeView)sender;
                //得到当前鼠标进入的节点
                TreeNode MyTargetNode = MyTreeView.GetNodeAt(treeView1.PointToClient(new Point(e.X, e.Y)));
                if (MyTargetNode != null)
                {
                    TreeNode MyTargetParent = MyTargetNode.Parent;
                    //删除拖放的节点
                    MyNode.Remove();
                    //添加到目标节点
                    MyTargetNode.Nodes.Add(MyNode);
                    MyTargetNode.BackColor = Color.White;
                    MyTreeView.SelectedNode = MyTargetNode;
                }
            }

            private void treeView1_ItemDrag_1(object sender, ItemDragEventArgs e)
            {
                //处理 treeView1控件ItemDrag事件
                //设置拖放类型为移动
                DoDragDrop(e.Item, DragDropEffects.Move);
            }   
        }
    }

  • 相关阅读:
    性能测试——Jmeter基本用法概述
    Postman-newman基础用法
    数据库基础总结
    性能测试概述
    pytest+allure生成测试报告
    CSS入门基础
    HTML基础知识总结
    robotframework:无法导入资源Not a valid file or directory to import
    robotframework及官方编辑器RIDE的安装与配置
    常用排序算法
  • 原文地址:https://www.cnblogs.com/zlf344242525/p/2267614.html
Copyright © 2011-2022 走看看