Перетащите из Outlook в Winforms - PullRequest
0 голосов
/ 18 февраля 2020

При перетаскивании элементов из электронной почты 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.

...