使用 Aspose Outlook 控件将 Outlook 消息拖放到 Windows 窗体
Contents
[
Hide
]
Aspose.Email 支持 Microsoft Outlook 的拖放功能。它使开发人员能够轻松创建响应 Outlook 拖放事件的 UI 元素。以下示例展示了如何创建一个面板,用户可以将 Outlook 中的邮件拖放到该面板上,并将邮件保存为 MSG 文件。以下代码片段展示了如何设置一个能够接收 Microsoft Outlook 拖放邮件的 Aspose Outlook 控件。
- 创建一个 Windows 窗体应用程序。
- 添加对 Aspose.Email 程序集的引用。
- 浏览到 Aspose.Email.dll 并点击 OK。
此示例创建的 UI 元素是一个面板。创建面板的方法如下:
- 在解决方案面板中右键单击项目,选择 Add,然后从菜单中选择 New item。
- 创建一个名为 MyPanel 的类:
- 让 MyPanel 成为 System.Windows.Forms.Panel 的子类,并向 MyPanel 添加一个 Aspose.Email.Windows.Forms.FileDropTargetManager 字段。
- 重写 OnHandleCreated 和 OnHandleDestroyed 方法,以使用 Aspose.Email.Windows.Forms.FileDropTargetManager 注册和注销 MyPanel:
class MyPanel : System.Windows.Forms.Panel
{
private Aspose.Email.Windows.Forms.FileDropTargetManager manager;
// Hook up
protected override void OnHandleCreated(EventArgs e)
{
this.manager = new Aspose.Email.Windows.Forms.FileDropTargetManager(this);
this.manager.EnsureRegistered(this);
base.OnHandleCreated(e);
}
// Unhook
protected override void OnHandleDestroyed(EventArgs e)
{
this.manager.EnsureUnRegistered(this);
base.OnHandleDestroyed(e);
}
}
- 构建项目。
MyPanel 已准备就绪。此面板接受来自 Outlook 的拖放事件。
- 打开工具箱面板,将 MyPanel 拖到您的 Windows 窗体上:
![]() |
|---|
- 为 MyPanel 的 DragDrop 事件添加事件处理程序。(别忘了在属性面板中将 AllowDrop 属性设为 true,并将 MyPanel 的 BackColor 属性改为您喜欢的颜色。)
![]() |
|---|
- 在主窗体的 InitializeComponent() 方法中添加以下行:
this.myPanel1.AllowDrop = true;
- 实现 DragDrop 事件处理程序,以将从 Outlook 拖拽的邮件保存为 MSG 文件。
- 将 DragEventArgs 强制转换为 Aspose.Email.Windows.Forms.FileDragEventArgs,该对象包含一个数组 Files 属性,代表用户的拖拽目标。
如果用户从 Outlook 拖动多个邮件并将它们放到 MyPanel 上,Files.Count 为邮件数量,Files[i] 则提供每一封具体的邮件。
private void myPanel1_DragDrop(object sender, DragEventArgs e)
{
Aspose.Email.Windows.Forms.FileDragEventArgs args;
args = (Aspose.Email.Windows.Forms.FileDragEventArgs)e;
if (args != null && args.Files.Count > 0)
{
for (int i = 0; i < args.Files.Count; i++)
{
SaveFileDialog dialog = new SaveFileDialog();
dialog.FileName = args.Files[i].FileName;
if (dialog.ShowDialog() == DialogResult.OK)
{
try
{
System.IO.FileStream output;
output = new System.IO.FileStream(dialog.FileName, System.IO.FileMode.CreateNew);
args.Files[i].Save(output);
MessageBox.Show("Save success:" + dialog.FileName);
}
catch (Exception ex)
{
MessageBox.Show("Save failed:" + ex.ToString());
}
}
}
}
}
- 运行项目并测试。
现在您可以将 Outlook 中的邮件拖动并放到您的应用程序上。应用程序会提示您将这些邮件保存为 MSG 文件。

