Usando o Controle Aspose Outlook para Arrastar e Soltar Mensagens do Outlook em Windows Forms

Contents
[ ]

Aspose.Email oferece suporte ao recurso de arrastar e soltar do Microsoft Outlook. Ele permite que desenvolvedores criem facilmente elementos de UI que respondam a eventos de arrastar‑soltar do Outlook. O exemplo a seguir mostra como criar um painel onde os usuários podem arrastar uma mensagem do Outlook e soltá‑la, e o programa para salvar mensagens em arquivos MSG. O trecho de código a seguir mostra como configurar um controle Aspose Outlook que pode receber mensagens do Microsoft Outlook soltas.

  • Crie uma aplicação Windows Forms.
  • Adicione uma referência ao assembly Aspose.Email.
  • Navegue até o Aspose.Email.dll e clique em OK.

O elemento de UI criado neste exemplo é um painel. Para criar um painel:

  • Clique com o botão direito no seu projeto no painel de solução e escolha Add e depois New item no menu.
  • Crie uma classe chamada MyPanel:
  • Deixe MyPanel ser uma subclasse de System.Windows.Forms.Panel, e adicione um campo Aspose.Email.Windows.Forms.FileDropTargetManager ao MyPanel.
  • Sobrescreva os métodos OnHandleCreated e OnHandleDestroyed para registrar e remover o MyPanel usando 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);
    }
}
  • Compile o projeto.

MyPanel está pronto para uso. Este painel aceita eventos de arrastar e soltar do Outlook.

  • Abra o painel de caixa de ferramentas e arraste MyPanel para o seu Windows Form:
todo:image_alt_text
  • Adicione um manipulador de eventos ao evento DragDrop do MyPanel. (Não esqueça de definir a propriedade AllowDrop como true no painel de propriedades e mudar a propriedade BackColor do MyPanel para a sua cor favorita.)
todo:image_alt_text
  • Adicione a seguinte linha no método InitializeComponent() do Form principal:
this.myPanel1.AllowDrop = true;
  • Implemente o manipulador de evento DragDrop para salvar as mensagens arrastadas do Outlook em arquivos MSG.
  • Converta DragEventArgs para Aspose.Email.Windows.Forms.FileDragEventArgs, que contém a propriedade array Files que representa o alvo de arraste do usuário.

Se um usuário arrastar várias mensagens do Outlook e soltá‑las no MyPanel, Files.Count será o número de mensagens, e Files[i] fornecerá cada mensagem individual.

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());
                }
            }
        }
    }
}
  • Execute o projeto e teste-o.

Agora você pode arrastar mensagens do Outlook e soltá‑las em sua aplicação. A aplicação solicita que você salve essas mensagens como arquivos MSG.