Sử dụng Điều khiển Aspose Outlook để Kéo và Thả Tin nhắn Outlook vào Windows Forms
Aspose.Email hỗ trợ tính năng kéo và thả của Microsoft Outlook. Nó cho phép các nhà phát triển dễ dàng tạo các yếu tố UI đáp ứng các sự kiện kéo-thả của Outlook. Mẫu sau cho thấy cách tạo một panel mà người dùng có thể kéo một tin nhắn từ Outlook và thả vào, và chương trình sẽ lưu tin nhắn dưới dạng tệp MSG. Đoạn mã sau cho bạn cách thiết lập một điều khiển Aspose Outlook có thể nhận các tin nhắn Outlook đã được thả.
- Tạo một ứng dụng Windows Form.
- Thêm tham chiếu tới assembly Aspose.Email.
- Duyệt đến tệp Aspose.Email.dll và nhấn OK.
Phần tử UI được tạo trong mẫu này là một panel. Để tạo một panel:
- Nhấp chuột phải vào dự án của bạn trong bảng giải pháp và chọn Add rồi New item từ menu.
- Tạo một lớp gọi là MyPanel:
- Để MyPanel là một lớp con của System.Windows.Forms.Panel, và thêm một trường Aspose.Email.Windows.Forms.FileDropTargetManager vào MyPanel.
- Ghi đè các phương thức OnHandleCreated và OnHandleDestroyed để đăng ký và hủy đăng ký MyPanel bằng 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);
}
}
- Xây dựng dự án.
MyPanel đã sẵn sàng để sử dụng. Panel này chấp nhận các sự kiện kéo và thả từ Outlook.
- Mở bảng toolbox và kéo MyPanel vào Windows Form của bạn:
![]() |
|---|
- Thêm một trình xử lý sự kiện vào sự kiện DragDrop của MyPanel. (Đừng quên đặt thuộc tính AllowDrop thành true trong bảng thuộc tính và thay đổi thuộc tính BackColor của MyPanel thành màu yêu thích của bạn.)
![]() |
|---|
- Thêm dòng sau vào phương thức InitializeComponent() của Form chính:
this.myPanel1.AllowDrop = true;
- Triển khai trình xử lý sự kiện DragDrop để lưu các tin nhắn được kéo từ Outlook thành tệp MSG.
- Ép DragEventArgs sang Aspose.Email.Windows.Forms.FileDragEventArgs, trong đó chứa một thuộc tính mảng Files đại diện cho mục tiêu kéo của người dùng.
Nếu người dùng kéo nhiều tin nhắn từ Outlook và thả chúng lên MyPanel, Files.Count là số lượng tin nhắn, và Files[i] trả về từng tin nhắn riêng lẻ.
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());
}
}
}
}
}
- Chạy dự án và kiểm tra.
Bây giờ bạn có thể kéo các tin nhắn từ Outlook và thả chúng vào ứng dụng của mình. Ứng dụng sẽ yêu cầu bạn lưu các tin nhắn đó dưới dạng tệp MSG.

