手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >c#中实现文件拖放打开的方法
c#中实现文件拖放打开的方法
摘要:C#实现文件拖放并打开文件需要知道的ListBox的两个事件:当您在控件的边界内拖动对象时,便会发生DragEnter事件;该事件用于确定当...

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

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

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

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

DragDrop 事件。

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

c#中实现文件拖放打开的方法1

代码实现:

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

复制代码 代码如下:

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

补充代码:

复制代码 代码如下:privatevoidForm1_DragEnter(objectsender,System.Windows.Forms.DragEventArgse)

{

if(e.Data.GetDataPresent(DataFormats.FileDrop))

e.Effect=DragDropEffects.Link;

elsee.Effect=DragDropEffects.None;

}

privatevoidForm1_DragDrop(objectsender,System.Windows.Forms.DragEventArgse)

{

//其中label1.Text显示的就是拖进文件的文件名;

label1.Text=((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();

}

【c#中实现文件拖放打开的方法】相关文章:

ASP.NET中文件上传下载方法集合

ASP.net中md5加密码的方法

asp.net实现文件无刷新上传方法汇总

VS2005打开VS2008项目的2种方法

asp.net为网页动态添加关键词的方法

asp.net中包含文件的代码及使用方法

C# 文件上传 默认最大为4M的解决方法

利用Timer在ASP.NET中实现计划任务的方法

.net4.0中tuple元组的使用方法

ashx中使用session的方法

精品推荐
分类导航