Хорошо.. найденный им..
dconf> org> гном> рабочий стол> интерфейс> приветствие can-change-accels
Im.
Я написал этот код на основе этой ссылки
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.AllowDrop = true;
textBox1.DragEnter += new DragEventHandler(textBox1_DragEnter);
textBox1.DragDrop += new DragEventHandler(textBox1_DragDrop);
}
private void textBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effects = DragDropEffects.Copy;
else
e.Effects = DragDropEffects.None;
}
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
string[] FileList = (string[])e.Data.GetData(DataFormats.FileDrop, false);
string s="";
foreach (string File in FileList)
s = s+ " "+ File ;
textBox1.Text = s;
}
}
Элемент управления имеет различные события для работы с перетаскиванием / отпусканием - вам, вероятно, нужно будет только посмотреть на событие DragDrop для того, что вы хотите.
Установите для AllowDrop значение true в текстовом поле и напишите следующий код для событий DragDrop и DragEnter:
private void textBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy;
}
}
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] fileNames = (string[])e.Data.GetData(DataFormats.FileDrop);
textBox1.Lines = fileNames;
}
}
В CodeProject есть действительно хороший пример этого, включая то, как включить перетаскивание в обоих направлениях (из Explorer в ваше приложение и из вашего приложения в Explorer).