c#中实现文件拖放打开的方法_asp.net教程-查字典教程网
c#中实现文件拖放打开的方法
c#中实现文件拖放打开的方法
发布时间:2016-12-29 来源:查字典编辑
摘要:C#实现文件拖放并打开文件需要知道的ListBox的两个事件:当您在控件的边界内拖动对象时,便会发生DragEnter事件;该事件用于确定当...

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

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

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

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

DragDrop 事件。

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

代码实现:

需要将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();

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新asp.net教程学习
    热门asp.net教程学习
    编程开发子分类