从剪贴板获取复制的电子邮件
Getting a copied email from the clipboard
我有一个显示目录内容的列表视图。我启用了拖放到列表视图中,以便用户可以将文件从
Windows 资源管理器并将其放入列表视图。然后我将这些文件复制到列表视图中显示的目录中。
如果您将电子邮件从 outlook 拖到桌面上或拖到 Windows 资源管理器中的文件夹中,它会创建电子邮件的 .msg 文件。
用户现在想从 outlook 中拖动电子邮件并将它们放入列表视图中。
当一封电子邮件在列表视图上是毒品时,它不会将其视为有效的 drag/drop 对象。光标是一个带有一条线的圆圈,而不是放置事件光标。
在 listView1_DragEnter
事件中我有
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.All;
}
else
{
e.Effect = DragDropEffects.None;
}
我已经尝试了 DataFormats.HTML
,但也没有发现任何可删除的内容。有什么想法吗?
电子邮件是从 Outlook 的列表部分拖出的。
在列表视图的 DragEnter
事件中,return 以下 DragDropEffects
:
private void listView_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.All;
}
要提取和阅读 DragDrop
事件中的 Outlook 消息,我建议使用 this 库。使用起来非常简单:
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();
}
}
我有一个显示目录内容的列表视图。我启用了拖放到列表视图中,以便用户可以将文件从 Windows 资源管理器并将其放入列表视图。然后我将这些文件复制到列表视图中显示的目录中。
如果您将电子邮件从 outlook 拖到桌面上或拖到 Windows 资源管理器中的文件夹中,它会创建电子邮件的 .msg 文件。 用户现在想从 outlook 中拖动电子邮件并将它们放入列表视图中。
当一封电子邮件在列表视图上是毒品时,它不会将其视为有效的 drag/drop 对象。光标是一个带有一条线的圆圈,而不是放置事件光标。
在 listView1_DragEnter
事件中我有
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.All;
}
else
{
e.Effect = DragDropEffects.None;
}
我已经尝试了 DataFormats.HTML
,但也没有发现任何可删除的内容。有什么想法吗?
电子邮件是从 Outlook 的列表部分拖出的。
在列表视图的 DragEnter
事件中,return 以下 DragDropEffects
:
private void listView_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.All;
}
要提取和阅读 DragDrop
事件中的 Outlook 消息,我建议使用 this 库。使用起来非常简单:
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();
}
}