当前位置:首页 > Windows程序 > 正文

C#窗体实现文件拖拽功能

2021-03-26 Windows程序

1、首先要把你的窗体或者空间的AllowDrag属性设置为允许

2、注册DragEnter事件

3、获得文件路径,先通过e.Data.GetFormats()方法获得所有数据格式

4、调用e.GetData()方法根据指定的数据格式获得文件路径

5、有了文件路径,,相信一切问题迎刃而解

下面是例子:

private void textBox1_DragEnter(object sender, DragEventArgs e) { //获得数据格式 File.WriteAllLines("C:\\1.text", e.Data.GetFormats()); //获得文件名 string[] filename = (string[])e.Data.GetData("FileNameW",true); textBox1.Text = filename[0]; string entesion = Path.GetFileName(textBox1.Text); if (!File.Exists(textBox1.Text.Trim())) { return; } //读取文件流 using (FileStream fsOpen = File.OpenRead(textBox1.Text.Trim())) { using (FileStream fs = new FileStream("C:\\" + entesion, FileMode.Create, FileAccess.Write)) { byte[] buffer = new byte[1024 * 1024]; while (true) { int result = fsOpen.Read(buffer, 0, buffer.Length); if (result <= 0) { break; } else { fs.Write(buffer, 0, result); } } fs.Flush(); } } }

运行结果:

技术分享

补充一点:

在win7下可能是因为权限不均衡不触发DragDrop事件,所以我在里只用到DragEnter事件,你们可以试下DragDrop事件,可能用户体验要好点!

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/67993.html