C#窗体实现文件拖拽功能
2013-01-11 13:54
393 查看
1、首先要把你的窗体或者空间的AllowDrag属性设置为允许
2、注册DragEnter事件
3、获得文件路径,先通过e.Data.GetFormats()方法获得所有数据格式
4、调用e.GetData()方法根据指定的数据格式获得文件路径
5、有了文件路径,相信一切问题迎刃而解
下面是例子:
补充一点:
在win7下可能是因为权限不均衡不触发DragDrop事件,所以我在里只用到DragEnter事件,你们可以试下DragDrop事件,可能用户体验要好点!
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事件,可能用户体验要好点!
相关文章推荐
- WinForm实现简单的拖拽文件到出题的功能(C#)(3)
- C#之winform实现文件拖拽功能
- C#文件文件夹拖拽功能的实现
- Winform窗体文本框实现拖拽获得目录或文件路径(C#)
- C# winform窗体实现文件拖拽打开的功能
- C# 鼠标穿透窗体功能的实现方法
- jQuery插件实现文件上传功能(支持拖拽)
- C#实现文件上传与下载功能实例
- C#窗体实现QQ截图功能
- C#使用FileSystemWatcher控件实现的文件监控功能示例
- C#类似QQ窗体抖动功能的实现
- C#实现树型结构TreeView节点拖拽的简单功能,附全部源码,供有需要的参考
- MFC中实现单个控件接收拖拽文件的功能
- 黄聪:C# 窗体拖拽功能
- C# WinForm 实现文件的拖入和拖出(拖拽操作)
- VC++文件拖拽功能实现drag
- C#控件Picturebox实现鼠标拖拽功能
- C#怎么实现文件下载功能
- 使用AJAX实现文件拖拽上传功能详解
- 【C#功能实现】c#程序为PDF文件填写表单内容