Използване на Aspose Outlook Control за плъзгане и пускане на 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 форма:
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 файлове.