Winform中实现拖拽文件到ListView获取文件类型(附代码下载)

场景

效果

 

 

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

新建一个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

posted @ 2019-12-12 08:50  霸道流氓  阅读(...)  评论(...编辑  收藏