【转】C#.net拖拽实现获得文件路径

C#.net拖拽实现获得文件路径
作者Attilax ,  EMAIL:[email protected]

思路: 通过DragEnter事件获得被拖入窗口的“信息”(可以是若干文件,一些文字等等),
在DragDrop事件中对“信息”进行解析。

窗体的AllowDrop属性必须设置成true;

且必须有DragEnter事件(单独写DragDrop事件是不会具有拖拽功能的)

 private void Form1_DragEnter(object sender, DragEventArgs e)
 {
              if (e.Data.GetDataPresent(DataFormats.FileDrop))
                  e.Effect = DragDropEffects.Link; //重要代码:表明是链接类型的数据,比如文件路径
               else e.Effect = DragDropEffects.None;
    }

         private void Form1_DragDrop(object sender, DragEventArgs e)
         {
               string path = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
             MessageBox.Show(path);
         }

参考:

WinForm的鼠标拖拽功能(C#)
C#中的拖放操作 - [email protected]的日志 - 网易博客.htm
winform(C#)拖拽实现获得文件路径_.NET教程网——简单专业的.NET技术网站.htm

原文链接:http://blog.csdn.net/attilax/article/details/8795867

时间: 2024-09-26 20:09:10

【转】C#.net拖拽实现获得文件路径的相关文章

html5简单拖拽实现自动左右贴边+幸运大转盘

此篇文章主要实现两个功能: 1.点击屏幕下方签到悬浮按钮: 2.弹出幸运大转盘,转盘抽奖签到 效果如图: 鉴于初入前端之路,方法有限,仅供参考. 在网上找了很多拖拽的js实现方式,大部分都是这一种,html5的touch事件,但是没找到点击按钮可以向两边贴边的拖拽,所以自己稍微修改了一点.代码如下: //签到按钮拖拽 var dragBox = document.getElementById('signCorner'); //拖拽中 dragBox.addEventListener('touch

asp.net Repeater拖拽实现排序并同步排序字段到数据库中

数据库表中有一个单位表,里面包括ID.Name.Order等字段,现在有个后台管理功能,可以设置这些单位在某些统计表格中的先后显示顺序,于是想到用拖拽方式实现,这样操作起来更简便. 使用了GifCam软件做了一个示例动画,效果如下图所示: 于是就动手起来,发现jquery.ui中提供sortable函数,可用于排序,界面中从数据库绑定的单位使用Repeater控件,下面简单介绍下主要步骤: 1.项目中使用到的jquery-1.7.2.min.js和jquery-ui.min.js请点击进行下载,

【WPF】这可能是全网最全的拖拽实现方法的总结

前文 本文只对笔者学习掌握的一般的拖动问题的实现方法进行整理和讨论,包括窗口.控件等内容的拖动. 希望本文能对一些寻找此问题的解决方法的人和一些刚入门的人一些帮助.笔者为WPF初学者,能得到各位的批评指正也是荣幸万分.有更好更多的方法,劳烦与我分享,不胜感激. 本文的各种实现方法其他博客中也都有提及,很多文章内容详实,有图有代码,笔者就不重复造轮子了.就写写自己的一些理解吧. 关键词 Window, UserControls, Drag 参考资料 http://www.cnblogs.com/D

html界面元素拖拽实现[超简单]

就是一个十分简单的小功能,将一个html界面元素从一个地方拖到另一个地方(复制或移动) html部分,省略部分非关键代码 <!-- 被拖拽元素 :draggable属性,表明元素可拖拽--> <div id="ma" class="MA" draggable="true"> A股 </div> <!-- 拖拽目标区域 --> <div id="box" class=&quo

自定义控件(2)-拖拽实现开关切换

在这里,我们的主要工作就是在原有代码的基础上,增加一个重写的onTouchEvent方法,刚添加上来的时候是这个样子的: @Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); } 对于触摸事件来说,一般返回值为true的话,那么就代表在这里消费掉本次触摸,而返回false的话,就在当前位置对本次触摸不做处理或者不能完全处理,还需要继续将本次事件分发给后续view或者

Mac OS X下快速复制文件路径

文件路径表示的是文件在文件系统里的位置,不管是用命令行操作的Linux程序员还是使用windows的广大用户,都难免会有这样的需求 在windows上复制当前目录的路径有一个特别方便的方式,只需要用鼠标点击路径栏,它就会自动变成像"D:\Downloads\tmp"这样的路径,如果要复制文件路径,只需要将目录路径和文件名拼接起来即可,Linux上也很方便,readlink -f yourfile就会打印出文件的绝对路径,虽然Mac也可以在命令行下使用greadlink(Mac上自带的r

[MAC] Mac OS X下快速复制文件路径的方法

在windows上复制当前目录的路径有一个特别方便的方式,只需要用鼠标点击路径栏,它就会自动变成像”D:\Downloads\tmp”这样的路径,如果要复制文件路径,只需要将目录路径和文件名拼接起来即可,Linux上也很方便,readlink -f yourfile就会打印出文件的绝对路径,虽然Mac也可以在命令行下使用greadlink(Mac上自带的readlink和Linux上功能不一样,greadlink意思是GNU’s readlink,和Linux上的readlink功能一致),但这

原生API实现拖拽上传文件实践

功能: 拖拽上传文件.图片,上传的进度条,能够同时上传多个文件. 完整的demo地址:https://github.com/qcer/FE-Components/tree/master/QDrag 涉及到的API: 1.HTML5的拖拽事件:dragenter,dragover,drop等 2.XMLHttpRequest  Level2 3.FormData 4.(扩展:HTML5的File API) 概述: 1.利用拖拽实践的API将一个普通的div自定义成一个放置目标,这里有一个技巧是放置

MFC 将文件拖进对话框获得文件信息

很多软件都支持直接将文件拖进去进行处理的功能,具体一点如暴风影音,将视频或者音频文件拖进去就会自动开始播放,那么这个功能在MFC上面怎么实现的呢?其实很简单,步骤如下: 第一步:将对话框属性中的 Accept Files 属性值设置为 True 第二步:添加WM_DROPFILES消息 第三步:定义WM_DROPFILES消息的响应函数如下: void CDragFileToDlgDlg::OnDropFiles(HDROP hDropInfo) { WCHAR szPath[MAX_PATH]