C # WinForms DragEnter никогда не запускается - PullRequest
7 голосов
/ 08 января 2012

Я озадачен этим. Я попытался реализовать перетаскивание на DataGridView. Не видя никаких событий, я попробовал простую форму с текстовым полем.

Я хотел бы иметь возможность перетаскивать файлы или папки из проводника Windows.

Я что-то упускаю, потому что эти события никогда не происходят. Я читал о DragEvents, Windows 7 и UIPI , но все еще не мог обойти это.

У меня нет идей, и я приветствую ваши предложения.

public Form1()
{
    InitializeComponent();
    this.AllowDrop = true;
    textBox1.AllowDrop = true;
    textBox1.DragEnter += new DragEventHandler(textBox1_DragEnter);
    textBox1.DragDrop += new DragEventHandler(textBox1_DragDrop);
    textBox1.DragOver += new DragEventHandler(textBox1_DragOver);
}

void textBox1_DragOver(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.Move;
}

void textBox1_DragDrop(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.Move;
}

void textBox1_DragEnter(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.Move;
}

Похоже, это должно работать. У меня чистая установка на WP7 64 - со всеми обновлениями у меня не работает защита от вирусов или вредоносных программ или что-либо (насколько я знаю), которое могло бы предотвратить запуск этих событий.

Ответы [ 2 ]

29 голосов
/ 15 мая 2014

У меня была такая же проблема. это было только потому, что я отлаживал из сеанса «запуск от имени администратора». Я думаю, что с VISTA существует система безопасности, которая предотвращает переход на привилегированное приложение.

3 голосов
/ 12 марта 2016

Я обнаружил, что когда я запускал свое приложение Forms в режиме отладки из Visual Studio, оно не работало.Только когда я запустил его за пределами VS, он работает отлично.Предположительно, это также связано с безопасностью в Windows 7 (и, возможно, в более поздних версиях).

...