استخدام التحكم Aspose Outlook لسحب وإفلات رسائل Outlook إلى نماذج Windows

Contents
[ ]

يدعم Aspose.Email ميزة السحب والإفلات في Microsoft Outlook. يتيح ذلك للمطورين إنشاء عناصر واجهة مستخدم تستجيب لأحداث السحب والإفلات في Outlook بسهولة. يوضح المثال التالي كيفية إنشاء لوحة يمكن للمستخدمين سحب رسالة من Outlook وإفلاتها عليها، والبرنامج لحفظ الرسائل كملفات MSG. يوضح مقطع الشيفرة التالي كيفية إعداد عنصر تحكم Aspose Outlook يمكنه استقبال رسائل Outlook المُسقطّة.

  • إنشاء تطبيق نموذج Windows.
  • أضف إشارة إلى تجميع 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.

  • افتح لوحة Toolbox واسحب MyPanel إلى نموذج Windows الخاص بك:
todo:image_alt_text
  • أضف معالج حدث إلى حدث DragDrop الخاص بـ MyPanel. (لا تنس ضبط الخاصية AllowDrop إلى true من لوحة الخصائص وتغيير خاصية BackColor لـ 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.