c# winform TreeView与ListView的项互相拖动的应用

本文介绍了如何在C# Winform应用中实现TreeView与ListView之间的拖放操作,包括将ListView项拖放到TreeView生成子节点,以及反向操作。作者通过实例代码展示了这两个功能的实现,旨在解决群友在实现拖放过程中遇到的问题。
摘要由CSDN通过智能技术生成

很久没写教程了,停顿了有两年之久了。今天我们来讨论讨论 winform 中TreeView与ListView,通观两者很相似,只是一个是树形结构,一个是列表结构。

今天自己创建的群里(2175832)有个朋友问到ListView的项如何拖动到TreeView中,并生成子节点,签于麻烦,我回答比较麻烦,用BUTTON实现吧,但他觉得拖动比较方便,那当然哦!无奈帮人帮到底,送佛送到西,于是立即创建本地WINFORM 测试项目,给了点代码给他(其实他本身已经完成了一半代码量了,只是在ListView拖动项到控区域外遇到了不解之疑)

好了,废话不多说了,直接转正题吧。今天我帖了代码是两个功能的结合:
1、ListView项拖动到TreeView
2、TreeView节点项拖动到ListView中

(效果图)

主要代码实现如下:

 

       #region  将LISTVIEW项拖动TREEVIEW中

        
///   <summary>
        
///  对选中项指定Move的“开始拖动操作”
        
///   </summary>
        
///   <param name="sender"></param>
        
///   <param name="e"></param>
         private   void  listView1_ItemDrag( object  sender, System.Windows.Forms.ItemDragEventArgs e)
        {
            
this .DoDragDrop(e.Item,DragDropEffects.Move);
        }

        
private   void  listView1_DragEnter( object  sender, System.Windows.Forms.DragEventArgs e)
        {
            e.Effect
= DragDropEffects.Move;
        }

        
private   void  treeView1_DragEnter( object  sender, System.Windows.Forms.DragEventArgs e)
        {
            
// 判定是否现在拖动的数据是LISTVIEW项
            ListViewItem lvi  =  (ListViewItem)e.Data.GetData( typeof (ListViewItem)); 
            
if  (lvi  !=   null
            { 
                e.Effect 
=  DragDropEffects.Move; 
            } 
 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值