ใช้ Aspose Outlook Control เพื่อการลากและวางข้อความ Outlook ไปยัง Windows Forms
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 ของคุณ:
![]() |
|---|
- เพิ่ม event handler ให้กับเหตุการณ์ DragDrop ของ MyPanel (อย่าลืมตั้งค่า AllowDrop เป็น true จากแผง properties และเปลี่ยนสี BackColor ของ MyPanel เป็นสีที่คุณชอบ.)
![]() |
|---|
- เพิ่มบรรทัดต่อไปนี้ในเมธอด 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.

