استفاده از کنترل Aspose Outlook برای کشیدن و رها کردن پیام‌های Outlook به فرم‌های ویندوز

Contents
[ ]

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 را به فرم ویندوزی خود بکشید:
todo:image_alt_text
  • یک هندلر رویداد به رویداد DragDrop پنل MyPanel اضافه کنید. (فراموش نکنید ویژگی AllowDrop را از پنل خصوصیات به true تنظیم کنید و رنگ پس‌زمینه MyPanel را به رنگ دلخواه تغییر دهید.)
todo:image_alt_text
  • خط زیر را در متد 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 ذخیره کنید.