Winform中实现拖拽文件到ListView获取文件类型(附代码下载)
程序员文章站
2022-04-14 19:39:50
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 新建一个form窗体,然后在窗体中拖拽一个ListView。 在form的shown事件中进行窗体的初始化。 p ......
场景
效果
注:
博客主页:
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
新建一个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