Использование управления Aspose Outlook для перетаскивания и сброса сообщений Outlook в Windows Forms

Contents
[ ]

Aspose.Email поддерживает функцию перетаскивания и сброса в Microsoft Outlook. Это позволяет разработчикам легко создавать элементы пользовательского интерфейса, которые реагируют на события перетаскивания и сброса Outlook. В следующем примере показано, как создать панель, на которую пользователи могут перетаскивать сообщение из Outlook и сбрасывать его, а также программу для сохранения сообщений в файлы MSG. Следующий фрагмент кода показывает, как настроить управление Aspose Outlook, которое может принимать сброшенные сообщения Microsoft Outlook.

  • Создайте приложение Windows Forms.
  • Добавьте ссылку на сборку Aspose.Email.
  • Перейдите к Aspose.Email.dll и нажмите OK.

Элемент пользовательского интерфейса, созданный в этом примере, — это панель. Чтобы создать панель:

  • Щелкните правой кнопкой мыши на вашем проекте в панели решений и выберите Добавить, затем Новый элемент в меню.
  • Создайте класс под названием MyPanel:
  • Пусть MyPanel будет подклассом System.Windows.Form.Panel и добавьте свойство Aspose.Email.Windows.Forms.FileDropTargetManager в MyPanel:
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
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);
}
}
  • Переопределите методы OnHandleCreated и OnHandleDestroyed для регистрации MyPanel с использованием Aspose.Email.Windows.Forms.FileDropTargetManager:
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
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:
todo:image_alt_text
  • Добавьте обработчик событий для события DragDrop MyPanel. (Не забудьте установить свойство AllowDrop в true на панели свойств и изменить свойство BackColor MyPanel на ваше любимое.)
todo:image_alt_text
  • Добавьте следующую строку в метод InitializeComponent() основной формы:
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
this.myPanel1.AllowDrop = true;
  • Реализуйте обработчик события DragDrop для сохранения сообщений, перетащенных из Outlook, в файлы MSG.
  • Преобразуйте DragEventArgs в Aspose.Email.Windows.Forms.FileDragEventArgs, который содержит массив свойства Files, представляющий целевой объект перетаскивания пользователя.

Если пользователь перетаскивает несколько сообщений из Outlook и сбрасывает их на MyPanel, Files.Count — это количество сообщений, а Files итерируется для каждого сообщения.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
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.