Usando el Control de Aspose Outlook para Arrastrar y Soltar Mensajes de Outlook en Formularios de Windows

Contents
[ ]

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

  • Crea una aplicación de formulario de Windows.
  • Agrega una referencia a la ensambladura Aspose.Email.
  • Navega al Aspose.Email.dll y haz clic en Aceptar.

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

  • Haz clic derecho en tu proyecto en el panel de solución y elige Agregar y luego Nuevo ítem en el menú.
  • Crea una clase llamada MyPanel:
  • Deja que MyPanel sea una subclase de System.Windows.Form.Panel, y agrega una propiedad Aspose.Email.Windows.Forms.FileDropTargetManager a 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);
}
}
  • Sobrescribe los métodos OnHandleCreated y OnHandleDestroyed para registrar MyPanel usando 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);
}
}
  • Compila el proyecto.

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

  • Abre tu panel de caja de herramientas y arrastra MyPanel a tu formulario de Windows:
todo:image_alt_text
  • Agrega un controlador de eventos al evento DragDrop de MyPanel. (No olvides establecer la propiedad AllowDrop en true desde el panel de propiedades y cambiar la propiedad BackColor de MyPanel a tu color favorito.)
todo:image_alt_text
  • Agrega la siguiente línea en el método InitializeComponent() del formulario principal:
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
this.myPanel1.AllowDrop = true;
  • Implementa el controlador de eventos DragDrop para guardar los mensajes arrastrados desde Outlook en archivos MSG.
  • Convierte DragEventArgs a Aspose.Email.Windows.Forms.FileDragEventArgs que contiene una propiedad Files, que representa la colección de destino de arrastre del usuario.

Si un usuario arrastra varios mensajes de Outlook y los suelta en MyPanel, Files.Count es el número de mensajes, y Files itera por cada mensaje.

// 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());
}
}
}
}
}
  • Ejecuta el proyecto y pruébalo.

Ahora puedes arrastrar mensajes de Outlook y soltarlos en tu aplicación. La aplicación te solicita que guardes esos mensajes en archivos MSG.