Aspose Outlook 컨트롤을 사용하여 Outlook 메시지를 Windows Forms에 끌어다 놓기

Contents
[ ]

Aspose.Email은 Microsoft Outlook의 끌어다 놓기 기능을 지원합니다. 이를 통해 개발자는 Outlook 끌어다 놓기 이벤트에 반응하는 UI 요소를 쉽게 만들 수 있습니다. 다음 샘플은 사용자가 Outlook에서 메시지를 끌어와 놓을 수 있는 패널을 만들고, 프로그램이 메시지를 MSG 파일로 저장하는 방법을 보여줍니다. 다음 코드 스니펫은 Microsoft Outlook 메시지를 받을 수 있는 Aspose Outlook 컨트롤을 설정하는 방법을 보여줍니다.

  • Windows Forms 애플리케이션을 생성합니다.
  • Aspose.Email 어셈블리에 대한 참조를 추가합니다.
  • Aspose.Email.dll을 찾아 OK 를 클릭합니다.

이 샘플에서 만든 UI 요소는 패널입니다. 패널을 만들려면:

  • 솔루션 패널에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 메뉴에서 Add 를 선택한 다음 New item 을 선택합니다.
  • MyPanel이라는 클래스를 생성합니다:
  • MyPanel을 System.Windows.Forms.Panel의 하위 클래스로 만들고, MyPanel에 Aspose.Email.Windows.Forms.FileDropTargetManager 필드를 추가합니다.
  • OnHandleCreated 및 OnHandleDestroyed 메서드를 재정의하여 Aspose.Email.Windows.Forms.FileDropTargetManager를 사용해 MyPanel을 등록 및 등록 해제합니다:
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);
    }
}
  • 프로젝트를 빌드합니다.

MyPanel 사용 준비가 완료되었습니다. 이 패널은 Outlook으로부터의 끌어다 놓기 이벤트를 받아들입니다.

  • 툴박스 패널을 열고 MyPanel을 Windows Form에 끌어다 놓습니다:
todo:image_alt_text
  • MyPanel의 DragDrop 이벤트에 이벤트 핸들러를 추가합니다. (속성 패널에서 AllowDrop 속성을 true로 설정하고 MyPanel의 BackColor 속성을 원하는 색으로 바꾸는 것을 잊지 마세요.)
todo:image_alt_text
  • 주 폼의 InitializeComponent() 메서드에 다음 줄을 추가합니다:
this.myPanel1.AllowDrop = true;
  • Outlook에서 끌어온 메시지를 MSG 파일로 저장하는 DragDrop 이벤트 핸들러를 구현합니다.
  • DragEventArgs를 Aspose.Email.Windows.Forms.FileDragEventArgs로 캐스팅합니다. 이 객체는 사용자의 드래그 대상인 Files 배열 속성을 포함합니다.

사용자가 Outlook에서 여러 메시지를 끌어와 MyPanel에 놓으면 Files.Count는 메시지 수를 나타내고, Files[i]는 각 개별 메시지를 제공합니다.

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());
                }
            }
        }
    }
}
  • 프로젝트를 실행하고 테스트합니다.

이제 Outlook에서 메시지를 끌어와 애플리케이션에 놓을 수 있습니다. 애플리케이션은 해당 메시지를 MSG 파일로 저장하라고 요청합니다.