Використання контролю Aspose Outlook для перетягування повідомлень Outlook у Windows Forms

Contents
[ ]

Aspose.Email підтримує функцію перетягування та скидання в Microsoft Outlook. Вона дозволяє розробникам легко створювати UI‑елементи, які реагують на події перетягування‑скидання Outlook. Наведений приклад показує, як створити панель, на яку користувачі можуть перетягувати повідомлення з Outlook і скинути його, а програма збереже повідомлення у MSG‑файлах. Наведений код показує, як налаштувати контроль Aspose Outlook, який може приймати скинуті повідомлення Microsoft Outlook.

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

UI‑елемент, створений у цьому прикладі, — це панель. Щоб створити панель:

  • Клацніть правою кнопкою миші ваш проєкт у панелі рішень і виберіть Add, а потім New item у меню.
  • Створіть клас під назвою MyPanel:
  • Нехай MyPanel буде підкласом System.Windows.Forms.Panel, і додайте поле Aspose.Email.Windows.Forms.FileDropTargetManager до MyPanel.
  • Перевизначте методи OnHandleCreated та OnHandleDestroyed, щоб зареєструвати та скасувати реєстрацію MyPanel за допомогою Aspose.Email.Windows.Forms.FileDropTargetManager:
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 Forms:
todo:image_alt_text
  • Додайте обробник події DragDrop до MyPanel. (Не забудьте встановити властивість AllowDrop у true у панелі властивостей і змінити BackColor MyPanel на ваш улюблений.)
todo:image_alt_text
  • Додайте наступний рядок у метод 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‑файлів.