Uso del Control Aspose Outlook para Arrastrar y Soltar Mensajes de Outlook en Windows Forms

Contents
[ ]

Aspose.Email soporta la función de arrastrar y soltar de Microsoft Outlook. Permite a los desarrolladores crear fácilmente elementos UI que respondan a eventos de arrastrar-soltar de Outlook. El siguiente ejemplo muestra cómo crear un panel sobre el cual los usuarios pueden arrastrar un mensaje desde Outlook y soltarlo, y el programa para guardar los mensajes en archivos MSG. El siguiente fragmento de código muestra cómo configurar un control Aspose Outlook que pueda recibir mensajes de Microsoft Outlook arrastrados.

  • Cree una aplicación de Windows Forms.
  • Agregue una referencia al ensamblado Aspose.Email.
  • Busque el archivo Aspose.Email.dll y haga clic en OK.

El elemento de UI creado en este ejemplo es un panel. Para crear un panel:

  • Haga clic con el botón derecho en su proyecto en el panel de solución y elija Agregar y luego Nuevo elemento del menú.
  • Cree una clase llamada MyPanel:
  • Haga que MyPanel sea una subclase de System.Windows.Forms.Panel, y añada un campo Aspose.Email.Windows.Forms.FileDropTargetManager a MyPanel.
  • Anule los métodos OnHandleCreated y OnHandleDestroyed para registrar y anular el registro de 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);
    }
}
  • Compilar el proyecto.

MyPanel está listo para usar. Este panel acepta eventos de arrastrar y soltar de Outlook.

  • Abra el panel de herramientas y arrastre MyPanel a su formulario Windows:
todo:image_alt_text
  • Agregue un controlador de eventos al evento DragDrop de MyPanel. (No olvide establecer la propiedad AllowDrop en true desde el panel de propiedades y cambiar la propiedad BackColor de MyPanel a su color favorito.)
todo:image_alt_text
  • Agregue la siguiente línea en el método InitializeComponent() del formulario principal:
this.myPanel1.AllowDrop = true;
  • Implemente el manejador del evento DragDrop para guardar los mensajes arrastrados desde Outlook en archivos MSG.
  • Convierta DragEventArgs a Aspose.Email.Windows.Forms.FileDragEventArgs, que contiene una propiedad array Files que representa el objetivo de arrastre del usuario.

Si un usuario arrastra varios mensajes desde Outlook y los suelta en MyPanel, Files.Count es el número de mensajes, y Files[i] da cada mensaje 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());
                }
            }
        }
    }
}
  • Ejecute el proyecto y pruébelo.

Ahora puede arrastrar mensajes desde Outlook y soltarlos en su aplicación. La aplicación le pide que guarde esos mensajes como archivos MSG.