Utilizzare il controllo Aspose Outlook per trascinare e rilasciare messaggi Outlook su Windows Forms

Contents
[ ]

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:
todo:image_alt_text
  • 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.)
todo:image_alt_text
  • 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.