RSS阅读器制作之TreeView树节点移动操作的实现

用于在TreeView之间调整树节点位置

         // 开始拖动树节点
         private   void  treeView1_ItemDrag( object  sender, ItemDragEventArgs e)
        
{
            
if (e.Button == MouseButtons .Left )
            
{
                DoDragDrop(e.Item, DragDropEffects.Move);
            }

        }


        
// 检验拖放的数据是否适用于目标控件,即是否为TreeNode对象
         private   void  treeView1_DragEnter( object  sender, DragEventArgs e)
        
{
            
if (e.Data .GetDataPresent ("System.Windows.Forms.TreeNode"))
            
{
                e.Effect 
= DragDropEffects.Move;
            }

            
else
            
{
                e.Effect 
= DragDropEffects.None;
            }

        }


        
// 拖放操作
         private   void  treeView1_DragDrop( object  sender, DragEventArgs e)
        
{
            
//获得拖放中的节点
            TreeNode moveNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");

            
//根据鼠标坐标确定要移动到的目标节点
            Point pt;
            TreeNode targeNode;
            pt 
= ((TreeView)(sender)).PointToClient(new Point(e.X,e.Y));
            targeNode 
= treeView1.GetNodeAt(pt);

            
//如果目标节点无子节点则添加为同级节点,反之添加到下级节点的未端
            if (targeNode.Nodes.Count == 0)
            
{
                targeNode.Parent.Nodes.Insert(targeNode.Index, (TreeNode)moveNode.Clone());
            }

            
else
            
{
                targeNode.Nodes.Insert(targeNode.Nodes .Count, (TreeNode)moveNode.Clone());
            }

            
//展开目标节点,便于显示拖放效果
            targeNode.Expand();

            
//移除拖放的节点
            moveNode.Remove();
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值