C#实现文件拖放并打开文件

需要知道的ListBox的两个事件:当您在控件的边界内拖动对象时,便会发生 DragEnter 事件;该事件用于确

定当前拖动的对象是不是您要放到控件上的对象。 在将一个或多个文件拖到控件上时,需要处理此事件。 这使

得在将对象拖到控件上方时,能够根据所拖动的对象显示相应的图标。 将拖动的对象释放到控件上时,会发生

DragDrop 事件。

功能描述:向ListBox拖入一个文件,ListBox显示该文件的路径,然后单击该路径,点击Open按钮打开该文件。

代码实现:

需要将ListBox的AllowDrop属性改为true,并实现它的DragEnterDragDrop这两个事件。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace DragDrop
{public partial class DragDrop : Form{public string FilePath;public DragDrop(){InitializeComponent();}/// <summary>/// 获取ListBox的值。/// </summary>/// <returns></returns>public string GetListBoxItem(){string filePath = string.Empty;bool isSelected = IsListBoxSelected();if (isSelected==true){string listBoxItemValue = lbFilePath.SelectedItem.ToString();filePath = listBoxItemValue;}else{MessageBox.Show("ListBox must be selected.");}return filePath;}/// <summary>/// ListBox内的值是否被选中。/// </summary>/// <returns></returns>public bool IsListBoxSelected(){bool selected;if (lbFilePath.SelectedIndex == -1)//SelectedIndex==-1时,表示未选中任何项。
            {selected = false;}else{selected = true;}return selected;}private void lbFilePath_DragEnter(object sender, DragEventArgs e){if (e.Data.GetDataPresent(DataFormats.FileDrop)){e.Effect = DragDropEffects.All;}else{e.Effect = DragDropEffects.None;}}private void lbFilePath_DragDrop(object sender, DragEventArgs e){string[] s=(string[])e.Data.GetData(DataFormats.FileDrop,false);for (int i = 0; i < s.Length; i++){lbFilePath.Items.Add(s[i]);}}private void btnOpenFile_Click(object sender, EventArgs e){string filePath=GetListBoxItem();if (!string.IsNullOrEmpty(filePath)){System.Diagnostics.Process.Start(filePath);}}}
}

总结:

Data 对象的 GetData 方法返回一个字符串数组,该数组包含拖到该列表框控件中的文件的完整路径名。 可以使用此文件路径信息来执行需要对文件执行的任何操作。

转载于:https://www.cnblogs.com/GaoHuhu/archive/2012/10/10/2717954.html

C#实现文件拖放并打开文件相关推荐

  1. “Word在试图打开文件时遇到错误。请尝试下列方法:* 检查文档或驱动器的文件权限。* 确保有足够的内存和磁盘空间。* 用文件恢复转换器打开文件。”问题!...

    Word在试图打开文件时遇到错误. 请尝试下列方法: * 检查文档或驱动器的文件权限. * 确保有足够的内存和磁盘空间. * 用文件恢复转换器打开文件. 如下图: 让同事在他们自己电脑上,都是可以打开 ...

  2. bat文件·启动程序打开文件夹

    bat文件·启动程序&打开文件夹 不想每次打开机子继续上一次的工作时去手工一个一个滴开启程序和打开文件夹,故想写一个bat双击解决. 1.启动程序: start download.bat: @ ...

  3. 注册表中shell文件不见了_win7系统误删注册表的shell文件导致无法打开文件的解决方法...

    无论谁在使用电脑的时候都可能会发现误删注册表的shell文件导致无法打开文件的问题,误删注册表的shell文件导致无法打开文件让用户们很苦恼,这是怎么回事呢,误删注册表的shell文件导致无法打开文件 ...

  4. 使用C#选择文件夹、打开文件夹、选择文件

    使用C#选择文件夹.打开文件夹.选择文件 - 摩根船长 - 博客园 http://www.cnblogs.com/szytwo/archive/2012/03/21/2410041.html usin ...

  5. 如何找到文件的家-打开文件对话框openFileDialog

    private void button1_Click(object sender, EventArgs e){openFileDialog1.Filter = "*.txt|*.txt&qu ...

  6. python中怎么打开文件_python如何打开文件

    python中的文件对象: 文件对象不仅可以用来访问普通的磁盘文件, 而且也可以访问任何其它类型抽象层面上的"文 件". 一旦设置了合适的"钩子", 你就可以访 ...

  7. python中打开文件open_Python中打开文件的方式(With open)

    1.读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标 示符: f = open( '/Users/michael/test.txt', 'r' ) 标示 ...

  8. Navicat导入xlsx文件提示无法打开文件

    今天使用navicat导入xlsx文件提示文件无法打开,然后以为是文件的问题,但是从表中导出的xlsx再导入还是提示无法打开.因为使用的navicat版本比较旧且没有激活,以为是navicat的问题, ...

  9. 计算机鼠标一直转圈圈 打不开文件,win7系统打开文件夹时鼠标右键一直转圈怎么办?通过bat文件来解决...

    随着电脑的使用率越来越高,我们有时候可能会遇到win7系统打开文件夹时鼠标右键一直转圈的问题,接下来给大家带来win7系统打开文件夹时鼠标右键一直转圈的详细解决方法: 具体方法如下: 1.首先在win ...

最新文章

  1. 从当前活动获取根视图
  2. NGUI 3.5教程(六)Font字体
  3. RHEL8 配置光盘源和yum源
  4. python二分法查找程序_Python程序查找地板划分
  5. 初识好朋友计算机课件,-精选版初识我们的好朋友——计算机.ppt
  6. hihoCoder1690 (动态规划)
  7. C程序设计语言现代方法05:选择语句
  8. C# 解析JSON格式数据
  9. oracle 锁表查询及解决、表字段查询
  10. 【fabric实战指南二】Fabric v1.0 部署过程原理详解
  11. CacheCloud运维管理平台学习笔记
  12. linux创建2g文件,嵌入式 创建一个2G的空文件(Linux命令dd)
  13. Python爬虫系列(一)——手把手教你写Python爬虫
  14. word输入对号以及带框的对号
  15. 周杰伦他什么都知道!
  16. 阿里云 OSS浏览器使用步骤
  17. 用 Creator 写微信小游戏排行榜
  18. 使用Xavier读取RealSense D435i的踩坑经历
  19. 手机断触怎么办_手机屏幕断触怎么办?弹片微针模组解决手机屏幕测试难题
  20. 物联网小课堂之NB-IoT黑科技——长连接方案x2

热门文章

  1. React基础篇(五)css样式的使用
  2. 逻辑OR(||)妙用
  3. vue 常见错的可能原因
  4. 我会回来的!我很想念大家!
  5. C++ 引用和指针有什么区别?
  6. jQuery 选择器和筛选
  7. 【正则表达式】以字母或下划线开头,包含字母、数字、以及下划线
  8. django使用iframe
  9. 汇编语言---统计数据区的正、负数并分开存放
  10. 域 正在应用计算机设置,入域的时候卡在”正在应用计算机设置”持续了好几分钟...