ใช้ Aspose Outlook Control เพื่อการลากและวางข้อความ Outlook ไปยัง Windows Forms

Contents
[ ]

Aspose.Email รองรับฟีเจอร์การลากและวางของ Microsoft Outlook ช่วยให้นักพัฒนาสร้าง UI ที่ตอบสนองต่อเหตุการณ์ลาก-วางของ Outlook ได้ง่าย ตัวอย่างต่อไปนี้แสดงวิธีสร้าง panel ที่ผู้ใช้สามารถลากข้อความจาก Outlook มาวางและบันทึกข้อความเป็นไฟล์ MSG โค้ดต่อไปนี้แสดงวิธีตั้งค่า Aspose Outlook control เพื่อรับข้อความ Outlook ที่ถูกวาง.

  • สร้างแอปพลิเคชัน Windows Form.
  • เพิ่มการอ้างอิงไปยัง Assembly ของ Aspose.Email.
  • เรียกดูไปยังไฟล์ Aspose.Email.dll แล้วคลิก OK.

องค์ประกอบ UI ที่สร้างในตัวอย่างนี้คือ panel เพื่อสร้าง panel:

  • คลิกขวาที่โครงการของคุณในแผงโซลูชันและเลือก Add แล้วเลือก New item จากเมนู.
  • สร้างคลาสชื่อ MyPanel:
  • ให้ MyPanel ทำหน้าที่เป็น subclass ของ System.Windows.Forms.Panel และเพิ่มฟิลด์ Aspose.Email.Windows.Forms.FileDropTargetManager เข้าไปใน MyPanel.
  • Override เมธอด OnHandleCreated และ OnHandleDestroyed เพื่อทำการลงทะเบียนและยกเลิกการลงทะเบียน MyPanel ด้วย 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);
    }
}
  • สร้างโครงการ.

MyPanel พร้อมใช้งาน แพเนลนี้รับเหตุการณ์ลากและวางจาก Outlook.

  • เปิดแผง toolbox ของคุณและลาก MyPanel ไปยังฟอร์ม Windows ของคุณ:
todo:image_alt_text
  • เพิ่ม event handler ให้กับเหตุการณ์ DragDrop ของ MyPanel (อย่าลืมตั้งค่า AllowDrop เป็น true จากแผง properties และเปลี่ยนสี BackColor ของ MyPanel เป็นสีที่คุณชอบ.)
todo:image_alt_text
  • เพิ่มบรรทัดต่อไปนี้ในเมธอด InitializeComponent() ของฟอร์มหลัก:
this.myPanel1.AllowDrop = true;
  • ดำเนินการตัวจัดการเหตุการณ์ DragDrop เพื่อบันทึกข้อความที่ลากจาก Outlook เป็นไฟล์ MSG.
  • แปลงชนิด DragEventArgs ไปเป็น Aspose.Email.Windows.Forms.FileDragEventArgs ซึ่งมี property แบบอาเรย์ 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.