Uso del Control Aspose Outlook para Arrastrar y Soltar Mensajes de Outlook en Windows Forms
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:
![]() |
|---|
- 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.)
![]() |
|---|
- 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.

