winform 将文件拖放到窗体上

现在的一些软件开发软件如VScode,HBuilder等软件,都支持将文件直接拖入到软件中展示,这种操作极大的方便的我们开发,要是在winform中能不能实现这种功能。

思路:修改winform窗体的AllowDrop属性,让窗体可以接受用户拖到它上面的数据,当文件拖到窗体时触发DragEnter时间,所以我们要新建一个Form1_DragEnter事件,在事件中获取文件的路径,最后将文件路径放到listbox中展示。

第一步:窗体属性设置,this.AllowDrop = true;

第二步:新增DragEnter事件,每当有文件拖入到窗体时都会触发这个事件,  private void Form1_DragEnter(object sender, DragEventArgs e){}

第三步:获取文件的路径,最后将文件路径放到listbox中展示

  private void Form1_DragEnter(object sender, DragEventArgs e)
        {
            //判断是否有文件拖入
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                //获取拖入的文件路径
                string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
                for (int i = 0; i < files.Length; i++)
                {//将拖放入窗体的文件的文件名加入ListBox
                    listBox1.Items.Add(files[i]);
                }
            }
        }

进阶: 通过获取到的文件路径,遍历出所有子文件内容,然后将数据绑定到类似于treeview树状展示,再给treeview添加节点点击事件,获取文件信息展现,这块也不复杂,可以自己尝试着做做。

原文地址:https://www.cnblogs.com/topsyuan/p/11327342.html