При перетаскивании элементов из электронной почты Outlook в приложение Winforms (Control имеет значение GalleryControl
от Dev Express, событие DragDrop не запускается, даже если я вручную установил DragDropEffects.Move в обработчике события DragEnter. ( подтвердили, что это срабатывает)
Однако событие DragDrop срабатывает только при перетаскивании обычных файлов из проводника windows.
private async void gcImages_DragDrop(object sender, DragEventArgs e)
{
string[] fileNames = null;
if (e.Data.GetDataPresent(DataFormats.FileDrop, false) == true)
{
fileNames = (string[])e.Data.GetData(DataFormats.FileDrop);
}
else if (e.Data.GetDataPresent("FileGroupDescriptor"))
{
OutlookDataObject dataObject = new OutlookDataObject(e.Data);
string[] filenames = (string[])dataObject.GetData("FileGroupDescriptor");
}
// do stuff async with file names
}
private void gcImages_DragEnter(object sender, DragEventArgs e)
{
// This event fires, no matter what i drag onto it. (Files from explorer, attachments from Outlook etc)
// However even after setting the effect as per below, the cursor still shows the 'not allowed' symbol.
e.Effect = DragDropEffects.Move;
}
Я включил AllowDrop = true
на элементе управления, и это отлично работает с Windows файлами Explorer, только не с файлами outlook.
Странно то, что событие DragEnter запускается, но событие DragDrop не запускается с вложениями Outlook.