Utilisation du contrôle Aspose Outlook pour glisser‑déposer des messages Outlook vers Windows Forms
Aspose.Email prend en charge la fonctionnalité de glisser‑déposer de Microsoft Outlook. Elle permet aux développeurs de créer facilement des éléments UI qui répondent aux événements de glisser‑déposer d’Outlook. L’exemple suivant montre comment créer un panneau sur lequel les utilisateurs peuvent glisser un message depuis Outlook et le déposer, ainsi que le programme pour enregistrer les messages sous forme de fichiers MSG. Le fragment de code suivant montre comment configurer un contrôle Aspose Outlook capable de recevoir des messages Microsoft Outlook déposés.
- Créez une application Windows Forms.
- Ajoutez une référence à l’assembly Aspose.Email.
- Parcourez jusqu’à Aspose.Email.dll et cliquez sur OK.
L’élément d’interface créé dans cet exemple est un panneau. Pour créer un panneau :
- Cliquez avec le bouton droit sur votre projet dans le panneau de solution et choisissez Add puis New item dans le menu.
- Créez une classe appelée MyPanel :
- Faites de MyPanel une sous‑classe de System.Windows.Forms.Panel, et ajoutez un champ Aspose.Email.Windows.Forms.FileDropTargetManager à MyPanel.
- Surchargez les méthodes OnHandleCreated et OnHandleDestroyed pour enregistrer et désenregistrer MyPanel en utilisant 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);
}
}
- Compilez le projet.
MyPanel est prêt à l’emploi. Ce panneau accepte les événements de glisser‑déposer provenant d’Outlook.
- Ouvrez votre panneau d’outils et faites glisser MyPanel sur votre formulaire Windows :
![]() |
|---|
- Ajoutez un gestionnaire d’événement à l’événement DragDrop de MyPanel. (N’oubliez pas de régler la propriété AllowDrop sur true depuis le panneau des propriétés et de changer la propriété BackColor de MyPanel à votre couleur préférée.)
![]() |
|---|
- Ajoutez la ligne suivante dans la méthode InitializeComponent() du formulaire principal :
this.myPanel1.AllowDrop = true;
- Implémentez le gestionnaire d’événement DragDrop pour enregistrer les messages glissés depuis Outlook en fichiers MSG.
- Cast DragEventArgs en Aspose.Email.Windows.Forms.FileDragEventArgs qui contient une propriété tableau Files représentant la cible du glissement de l’utilisateur.
Si un utilisateur fait glisser plusieurs messages depuis Outlook et les dépose sur MyPanel, Files.Count est le nombre de messages, et Files[i] donne chaque message individuel.
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());
}
}
}
}
}
- Exécutez le projet et testez-le.
Vous pouvez maintenant faire glisser des messages depuis Outlook et les déposer sur votre application. L’application vous demande d’enregistrer ces messages sous forme de fichiers MSG.

