场景

效果

 

 

注:

博客主页:

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

新建一个form窗体,然后在窗体中拖拽一个listview。

在form的shown事件中进行窗体的初始化。

private void form1_shown(object sender, eventargs e)
        {
            listview1.gridlines = true;//在各数据之间形成网格线
            listview1.view = view.details;//显示列名称
            listview1.fullrowselect = true;//在单击某项时,对其进行选中
            listview1.headerstyle = columnheaderstyle.nonclickable;//隐藏列标题

            listview1.columns.add("文件名", listview1.width - 65, horizontalalignment.right);//设置头像
            listview1.columns.add("类型", 60, horizontalalignment.center);//设置头像
        }

 

然后编写listview的dragenter事件

 

 

在事件中设置拖放目标中放置类型为复制。然后检索数据格式相关联的数据。

最后传递给方法data_list来给listview赋值。

private void listview1_dragenter(object sender, drageventargs e)
        {
            e.effect = dragdropeffects.copy;       //设置拖放操作中目标放置类型为复制
            string[] str_drop = (string[])e.data.getdata(dataformats.filedrop, true);//检索数据格式相关联的数据
            data_list(listview1, str_drop[0]);
        }

 

赋值方法

public void data_list(listview lv, string f)  //form或mouseeventargs添加命名空间using system.windows.forms;
        {
            string enlarge = "";
            //验证是否是三个字母结尾的后缀名,是则截取后三个后缀名,否则后缀名为空
            if (f.lastindexof(".") == f.length - 4)
            {
                enlarge = f.substring(f.lastindexof(".") + 1, 3);
            }
            listviewitem item = new listviewitem(f);
            item.subitems.add(enlarge);
            lv.items.add(item);
        }

 

代码下载

https://download.csdn.net/download/badao_liumang_qizhi/12025760