Verwendung des Aspose Outlook Controls zum Drag‑&‑Drop von Outlook‑Nachrichten in Windows‑Forms
Aspose.Email unterstützt die Drag‑and‑Drop‑Funktion von Microsoft Outlook. Sie ermöglicht Entwicklern, UI‑Elemente zu erstellen, die auf Outlook‑Drag‑Drop‑Ereignisse reagieren. Das folgende Beispiel zeigt, wie man ein Panel erstellt, auf das Benutzer eine Nachricht aus Outlook ziehen und ablegen können, und das Programm, das die Nachrichten als MSG‑Dateien speichert. Das nachfolgende Code‑Snippet zeigt, wie man ein Aspose‑Outlook‑Steuerelement einrichtet, das abgelegte Outlook‑Nachrichten empfangen kann.
- Erstellen Sie eine Windows‑Forms‑Anwendung.
- Fügen Sie einen Verweis auf die Aspose.Email‑Assembly hinzu.
- Navigieren Sie zu Aspose.Email.dll und klicken Sie auf OK.
Das in diesem Beispiel erstellte UI‑Element ist ein Panel. So erstellen Sie ein Panel:
- Klicken Sie mit der rechten Maustaste auf Ihr Projekt im Lösungs‑Explorer und wählen Sie Add und dann New item im Menü.
- Erstellen Sie eine Klasse namens MyPanel:
- Lassen Sie MyPanel eine Unterklasse von System.Windows.Forms.Panel sein und fügen Sie ein Aspose.Email.Windows.Forms.FileDropTargetManager‑Feld zu MyPanel hinzu.
- Überschreiben Sie die Methoden OnHandleCreated und OnHandleDestroyed, um MyPanel mithilfe von Aspose.Email.Windows.Forms.FileDropTargetManager zu registrieren bzw. abzumelden:
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);
}
}
- Projekt kompilieren.
MyPanel ist einsatzbereit. Dieses Panel akzeptiert Drag‑&‑Drop‑Ereignisse von Outlook.
- Öffnen Sie den Toolbox‑Bereich und ziehen Sie MyPanel auf Ihr Windows‑Formular:
![]() |
|---|
- Fügen Sie dem DragDrop‑Ereignis von MyPanel einen Event‑Handler hinzu. (Vergessen Sie nicht, die Eigenschaft AllowDrop im Eigenschaften‑Panel auf true zu setzen und die BackColor‑Eigenschaft von MyPanel nach Belieben zu ändern.)
![]() |
|---|
- Fügen Sie die folgende Zeile in der Methode InitializeComponent() des Hauptformulars ein:
this.myPanel1.AllowDrop = true;
- Implementieren Sie den DragDrop‑Ereignishandler, um die aus Outlook gezogenen Nachrichten in MSG‑Dateien zu speichern.
- Casten Sie DragEventArgs zu Aspose.Email.Windows.Forms.FileDragEventArgs, das über ein Array‑Property Files verfügt, welches das Drag‑Ziel des Benutzers darstellt.
Wenn ein Benutzer mehrere Nachrichten aus Outlook zieht und sie auf MyPanel ablegt, ist Files.Count die Anzahl der Nachrichten und Files[i] liefert jede einzelne Nachricht.
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());
}
}
}
}
}
- Projekt ausführen und testen.
Jetzt können Sie Nachrichten aus Outlook ziehen und in Ihre Anwendung ablegen. Die Anwendung fordert Sie auf, diese Nachrichten als MSG‑Dateien zu speichern.

