Użycie kontrolki Aspose Outlook do przeciągania i upuszczania wiadomości Outlook w aplikacjach Windows Forms

Contents
[ ]

Aspose.Email obsługuje funkcję przeciągania i upuszczania w Microsoft Outlook. Umożliwia programistom łatwe tworzenie elementów UI, które reagują na zdarzenia przeciągania i upuszczania w Outlooku. Poniższy przykład pokazuje, jak stworzyć panel, na którym użytkownicy mogą przeciągnąć wiadomość z Outlooka i upuścić ją, a program zapisze wiadomości jako pliki MSG. Poniższy fragment kodu pokazuje, jak skonfigurować kontrolkę Aspose Outlook, która może odbierać upuszczone wiadomości z Microsoft Outlook.

  • Utwórz aplikację Windows Forms.
  • Dodaj odwołanie do zestawu Aspose.Email.
  • Przejdź do Aspose.Email.dll i kliknij OK.

Element UI utworzony w tym przykładzie to panel. Aby stworzyć panel:

  • Kliknij prawym przyciskiem myszy projekt w panelu rozwiązań i wybierz Add, a następnie New item z menu.
  • Utwórz klasę o nazwie MyPanel:
  • Uczyń MyPanel podklasą System.Windows.Forms.Panel i dodaj pole Aspose.Email.Windows.Forms.FileDropTargetManager do MyPanel.
  • Zastąp metody OnHandleCreated i OnHandleDestroyed, aby zarejestrować i wyrejestrować MyPanel przy użyciu 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);
    }
}
  • Zbuduj projekt.

MyPanel jest gotowy do użycia. Ten panel akceptuje zdarzenia przeciągnij i upuść z Outlooka.

  • Otwórz panel Toolbox i przeciągnij MyPanel na formularz Windows:
todo:image_alt_text
  • Dodaj obsługę zdarzenia DragDrop do MyPanel. (Nie zapomnij ustawić właściwości AllowDrop na true w panelu właściwości i zmienić właściwość BackColor MyPanel na ulubiony kolor.)
todo:image_alt_text
  • Dodaj następującą linię w metodzie InitializeComponent() głównego formularza:
this.myPanel1.AllowDrop = true;
  • Zaimplementuj obsługę zdarzenia DragDrop, aby zapisywać wiadomości przeciągnięte z Outlooka jako pliki MSG.
  • Rzutuj DragEventArgs na Aspose.Email.Windows.Forms.FileDragEventArgs, które zawiera właściwość Files będącą tablicą reprezentującą cel przeciągania użytkownika.

Jeśli użytkownik przeciągnie kilka wiadomości z Outlooka i upuści je na MyPanel, Files.Count jest liczbą wiadomości, a Files[i] zwraca każdą poszczególną wiadomość.

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());
                }
            }
        }
    }
}
  • Uruchom projekt i przetestuj go.

Teraz możesz przeciągać wiadomości z Outlooka i upuszczać je w swojej aplikacji. Aplikacja poprosi Cię o zapisanie tych wiadomości jako pliki MSG.