استفاده از کنترل Aspose Outlook برای کشیدن و رها کردن پیامهای Outlook به فرمهای ویندوز
Aspose.Email از ویژگی کشیدن و رها کردن در Microsoft Outlook پشتیبانی میکند. این امکان به توسعهدهندگان اجازه میدهد به آسانی عناصر UI را ایجاد کنند که به رویدادهای کشیدن و رها کردن Outlook واکنش نشان دهند. نمونه زیر نشان میدهد چگونه یک پنل ایجاد کنید که کاربران بتوانند پیام را از Outlook بکشند و رها کنند و برنامه پیامها را به فایلهای MSG ذخیره کند. قطعه کد زیر نشان میدهد چگونه یک کنترل Aspose Outlook راهاندازی کنید که میتواند پیامهای Microsoft Outlook رها شده را دریافت کند.
- یک برنامه Windows Form ایجاد کنید.
- یک ارجاع به اسمبلی Aspose.Email اضافه کنید.
- به فایل Aspose.Email.dll بروید و OK را کلیک کنید.
عنصر UI ایجاد شده در این نمونه یک پنل است. برای ایجاد یک پنل:
- روی پروژهٔ خود در پنل راهحل کلیک راست کنید و سپس Add و بعد New item را از منو انتخاب کنید.
- یک کلاس به نام MyPanel ایجاد کنید:
- اجازه دهید MyPanel زیرکلاس System.Windows.Forms.Panel باشد و فیلد Aspose.Email.Windows.Forms.FileDropTargetManager را به MyPanel اضافه کنید.
- متدهای 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 را میپذیرد.
- پنل جعبهابزار خود را باز کنید و MyPanel را به فرم ویندوزی خود بکشید:
![]() |
|---|
- یک هندلر رویداد به رویداد DragDrop پنل MyPanel اضافه کنید. (فراموش نکنید ویژگی AllowDrop را از پنل خصوصیات به true تنظیم کنید و رنگ پسزمینه MyPanel را به رنگ دلخواه تغییر دهید.)
![]() |
|---|
- خط زیر را در متد InitializeComponent() فرم اصلی اضافه کنید:
this.myPanel1.AllowDrop = true;
- مدیریتگر رویداد DragDrop را پیادهسازی کنید تا پیامهای کشیدهشده از Outlook را در فایلهای MSG ذخیره کنید.
- 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 ذخیره کنید.

