实现拖放文件到listbox上,通过选择运行文件。
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 Form1 : Form
{
public Form1()
{
InitializeComponent();
this.AllowDrop = true;//设置接受用户拖放到其上的数据
}
public void File(string[] file)
{
this.listBox1.Items.AddRange(file);//将用户拖放的数据添加到listbox中
}
private void Form1_DragDrop(object sender, DragEventArgs e)
{
object obj = e.Data.GetData(DataFormats.FileDrop);
if (obj != null)
{
string[] arr = (string[])obj;//得到拖放数据源的路径
if (arr != null)
{
File(arr);
}
}
}
private void Form1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Link;//将拖动源中的数据链接到放置目标
//e.Effect = DragDropEffects.Copy;//复制
}
}
private void listBox1_MouseClick(object sender, MouseEventArgs e)
{
if (this.listBox1.SelectedItems.Count > 0)
{
System.Diagnostics.Process.Start(this.listBox1.SelectedItem.ToString());//打开选中的某个文件
}
else
{
return;
}
}
}
}