如何在C# WinForms应用程序中将文件拖到Outlook邮件中

7
我正在尝试将一个或多个文件从我的应用程序拖到Outlook邮件消息中。如果我将它们拖到桌面上,那么这些文件会按预期被复制到桌面上,但是当我拖到新的Outlook 2013邮件消息时,什么也不会发生...只有当我明确地拖到“附件文本框”时,它们才会出现,但这并没有帮助,因为默认情况下不会显示附件文本框。
我不明白为什么当我从桌面拖动文件到邮件时,只需放下它们,附件文本框就会自动出现并显示文件,但是当我从我的应用程序中拖动时,它却无法工作...以下是我的代码:
    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
        var _files = new string[] { @"E:\Temp\OR_rtftemplates.xml", @"E:\Temp\Tail.Web_Trace.cmd" };
        var fileDragData = new DataObject(DataFormats.FileDrop, _files);

        (sender as Form).DoDragDrop(fileDragData, DragDropEffects.All);

        Console.WriteLine("{0} - button1_MouseDown", DateTime.Now.TimeOfDay);
    }

我还使用了“SetFileDropList”方法将文件添加到DataObject中,但这没有任何区别。

一定有一些神奇的属性我必须设置才能使它与Outlook邮件正常工作。

希望有人能为此提供一些指导。

谢谢, Jurjen。


如果您从桌面(而不是应用程序)将文件拖入Outlook,会发生什么? - Sinatr
1个回答

1

我刚刚在一台运行.NET 4.0的机器上测试了一些其他东西(应用程序是在.NET 4.5中编译的)。将.NET目标更改为4.0并重新编译后,将文件拖入新的Outlook消息确实可以工作。非常奇怪,可能会在以后迁移到.NET 4.5时出现问题...但现在它可以工作...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接