Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从剪贴板获取复制的电子邮件_C#_Email_Outlook_Clipboard_Copy Paste - Fatal编程技术网

C# 从剪贴板获取复制的电子邮件

C# 从剪贴板获取复制的电子邮件,c#,email,outlook,clipboard,copy-paste,C#,Email,Outlook,Clipboard,Copy Paste,我有一个显示目录内容的列表视图。我已启用拖放到listview中,以便用户可以从中拖动文件 Windows资源管理器并将其放到列表视图中。然后,我将这些文件复制到listview中显示的目录中 如果将电子邮件从outlook拖到桌面或Windows资源管理器中的文件夹中,则会创建电子邮件的.msg文件。 用户现在希望从outlook中拖动电子邮件并将其放到listview中 当电子邮件通过listview时,它不会将其视为有效的拖放对象。光标是一个圆,有一条线穿过它,而不是drop事件光标 在列

我有一个显示目录内容的列表视图。我已启用拖放到listview中,以便用户可以从中拖动文件 Windows资源管理器并将其放到列表视图中。然后,我将这些文件复制到listview中显示的目录中

如果将电子邮件从outlook拖到桌面或Windows资源管理器中的文件夹中,则会创建电子邮件的.msg文件。 用户现在希望从outlook中拖动电子邮件并将其放到listview中

当电子邮件通过listview时,它不会将其视为有效的拖放对象。光标是一个圆,有一条线穿过它,而不是drop事件光标

列表视图1\u DragEnter
事件中,我有

        if (e.Data.GetDataPresent(DataFormats.FileDrop))
        {
            e.Effect = DragDropEffects.All;
        }
        else
        {
            e.Effect = DragDropEffects.None;
        }
我尝试了
DataFormats.HTML
,但也没有看到任何可以放弃的内容。有什么想法吗

将从Outlook的列表部分拖动电子邮件。

在listview的
DragEnter
事件中,返回以下
DragDropEffects

private void listView_DragEnter(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.All;
}
要在
DragDrop
事件中提取和读取Outlook邮件,我建议使用库。它非常容易使用:

private void listView_DragDrop(object sender, DragEventArgs e)
{
    OutlookDataObject dataObject = new OutlookDataObject(e.Data);

    //get the names and data streams of the files dropped
    string[] filenames = (string[])dataObject.GetData("FileGroupDescriptor");
    MemoryStream[] filestreams = (MemoryStream[])dataObject.GetData("FileContents");

    for (int fileIndex = 0; fileIndex < filenames.Length; fileIndex++)
    {
        string filename = filenames[fileIndex];
        MemoryStream filestream = filestreams[fileIndex];

        OutlookStorage.Message message = new OutlookStorage.Message(filestream);

        // do whatever you want with "message"

        message.Dispose();
    }
}
private void listView\u DragDrop(对象发送方,DragEventArgs e)
{
OutlookDataObject数据对象=新的OutlookDataObject(即数据);
//获取已删除文件的名称和数据流
字符串[]文件名=(字符串[])dataObject.GetData(“FileGroupDescriptor”);
MemoryStream[]filestreams=(MemoryStream[])dataObject.GetData(“FileContents”);
对于(int fileIndex=0;fileIndex