Utilizzare il controllo Aspose Outlook per trascinare e rilasciare messaggi Outlook su Windows Forms
Aspose.Email supporta la funzione di drag and drop di Microsoft Outlook. Consente agli sviluppatori di creare facilmente elementi UI che rispondono agli eventi di drag-drop di Outlook. Il campione seguente mostra come creare un pannello sul quale gli utenti possono trascinare un messaggio da Outlook e rilasciarlo, e il programma per salvare i messaggi in file MSG. Il frammento di codice seguente mostra come impostare un controllo Aspose Outlook in grado di ricevere messaggi di Microsoft Outlook rilasciati.
- Crea un’applicazione Windows Form.
- Aggiungi un riferimento all’assembly Aspose.Email.
- Sfoglia fino a Aspose.Email.dll e fai clic su OK.
L’elemento UI creato in questo esempio è un pannello. Per creare un pannello:
- Fai clic destro sul tuo progetto nel pannello della soluzione e scegli Add e poi New item dal menu.
- Crea una classe chiamata MyPanel:
- Fai in modo che MyPanel sia una sottoclasse di System.Windows.Forms.Panel e aggiungi un campo Aspose.Email.Windows.Forms.FileDropTargetManager a MyPanel.
- Sovrascrivi i metodi OnHandleCreated e OnHandleDestroyed per registrare e deregistrare 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);
}
}
- Compila il progetto.
MyPanel è pronta per l’uso. Questo pannello accetta eventi di drag and drop da Outlook.
- Apri il pannello della toolbox e trascina MyPanel sul tuo Windows Form:
![]() |
|---|
- Aggiungi un gestore di eventi all’evento DragDrop di MyPanel. (Non dimenticare di impostare la proprietà AllowDrop su true dal pannello delle proprietà e cambiare la proprietà BackColor di MyPanel con il tuo colore preferito.)
![]() |
|---|
- Aggiungi la seguente riga nel metodo InitializeComponent() del Form principale:
this.myPanel1.AllowDrop = true;
- Implementa il gestore dell’evento DragDrop per salvare i messaggi trascinati da Outlook in file MSG.
- Esegui il cast di DragEventArgs a Aspose.Email.Windows.Forms.FileDragEventArgs che contiene una proprietà array Files che rappresenta il target di trascinamento dell’utente.
Se un utente trascina diversi messaggi da Outlook e li rilascia su MyPanel, Files.Count è il numero di messaggi, e Files[i] restituisce ciascun messaggio individuale.
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());
}
}
}
}
}
- Esegui il progetto e testalo.
Ora puoi trascinare messaggi da Outlook e rilasciarli sulla tua applicazione. L’applicazione ti chiederà di salvare quei messaggi come file MSG.

