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添加节点点击事件,获取文件信息展现,这块也不复杂,可以自己尝试着做做。