مشاركة عبر


الإرشادات التفصيلية: استيراد منطقة نموذج مصممة في Outlook

ينطبق على

تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع.

نوع المشروع

  • مشروعات على مستوى التطبيق

إصدار Microsoft Office

  • Outlook 2007

  • Outlook 2010

توضح هذه الإرشادات التفصيلية كيفية تصميم منطقة نموذج في Microsoft Office Outlook، ثم استيراد منطقة النموذج إلى مشروع وظيفة Outlook إضافية باستخدام المعالج منطقة نموذج جديدة. تصميم منطقة النموذج في Outlook تتيح لك إضافة عناصر تحكم Outlook أصلية إلى منطقة النموذج التى تتربط ببيانات Outlook. بعد استيراد منطقة النموذج، يمكنك معالجة الأحداث لكل عنصر تحكم.

توضح هذه الإرشادات التفصيلية المهام التالية:

  • تصميم منطقة نموذج باستخدام مصمم منطقة النموذج في Outlook.

  • استيراد منطقة نموذج إلى مشروع وظيفة Outlook إضافية.

  • معالجة أحداث عناصر التحكم على منطقة النموذج.

ملاحظة

قد يعرض جهاز الكمبيوتر الخاص بك أسماء أو مواقع مختلفة لبعض عناصر واجهة مستخدم Visual Studio في الإرشادات التالية. يحدد كل من إصدار Visual Studio لديك والإعدادات المستخدمة هذه العناصر. لمزيد من المعلومات، راجع العمل مع إعدادات.

المتطلبات الأساسية

تحتاج إلى المكونات التالية لاستكمال هذه الإرشادات التفصيلية:

-

إصدار لـ Visual Studio 2010 يشمل أدوات مطوري Microsoft Office. لمزيد من المعلومات، راجع [تكوين كمبيوتر لتطوير حلول Office](bb398242\(v=vs.100\).md).
  • Microsoft Office Outlook 2007 أو Outlook 2010.

ملاحظة

قد يعرض جهاز الكمبيوتر الخاص بك أسماء أو مواقع مختلفة لبعض عناصر واجهة مستخدم Visual Studio في الإرشادات التالية. يحدد كل من إصدار Visual Studio لديك والإعدادات المستخدمة هذه العناصر. لمزيد من المعلومات، راجع العمل مع إعدادات.

ارتباط إلى فيديو للحصول على عرض فيديو توضيحي ذي صلة، راجع كيف يمكنني القيام بما يلي: إنشاء مناطق نموذج Outlook باستخدام 2008 Visual Studio؟.

تصميم منطقة نموذج باستخدام مصمم منطقة النموذج في Outlook.

في هذه الخطوة سوف تصمم منطقة نموذج في Outlook. ثم ستقوم بحفظ منطقة النموذج إلى موقع سهل العثور عليه بحيث يمكنك استيرادها إلى Visual Studio.

مثال منطقة النموذج هذا يحل محل نموذج المهام العادية بشكل كامل. يوفر طريقة لتعقب تقدم كافة المهام التي يجب إكمالها قبل إجراء المهمة الرئيسية (المهام اللازمة). تعرض منطقة النموذج قائمة بالمهام اللازمة، ثم تعرض حالة إكمال كل مهمة في القائمة. يمكن للمستخدمين إضافة مهام إلى القائمة وإزالتها. يمكنهم أيضًا تحديث حالة إكمال كل مهمة.

لتصميم منطقة نموذج باستخدام مصمم منطقة النموذج في Outlook.

  1. ‏‏ابدأ تشغيل Microsoft Office Outlook.

  2. قم بفتح مصمم النماذج عن طريق إجراء إحدى المهام التالية:

  3. في المربع تصميم نموذج، انقر فوق المهام، ثم انقر فوق فتح.

  4. قم بإنشاء منطقة نموذج عن طريق إجراء إحدى المهام التالية:

    • في 2010 Outlook، في علامة التبويب المطور، في المجموعة تصميم، انقر فوق منطقة نموذج جديدة.

    • في Outlook 2007، في علامة التبويب المطور، في المجموعة التصميم، انقر فوق منطقة النموذج ثم منطقة نموذج جديدة.

    تفتح منطقة نموذج جديدة. إذا لم يظهر منتقي الحقول، انقر فوق منتقي الحقول في المجموعة أدوات.

  5. اسحب الحقل الموضوع و الحقل % الاكتمال من منتقي الحقول لمنطقة النموذج.

  6. في المجموعة أدوات، انقر فوق عنصر تحكم مربع الأدوات لفتح مربع الأدوات.

  7. اسحب تسمية من مربع الأدوات إلى منطقة النموذج. ضع التسمية أسفل الحقول الموضوع و % الاكتمال.

  8. انقر بزر الماوس الأيمن فوق التسمية، ثم انقر فوق خصائص متقدمة.

  9. In the Properties window, set the Caption property to This task depends on the following tasks, set the Width property to 200, and then click Apply.

  10. اسحب عنصر تحكم مربع قائمة من مربع الأدوات إلى منطقة النموذج. في مستند-المستوى الكلمة مشاريع, you can إضافة محتوى عناصر التحكم إلى the مستند في your مشروع at تصميم الوقت أو at تشغيل الوقت.

  11. حدد مربع القائمة الذي قمت بإضافته.

  12. In the Properties window, set Width to 300, and then click Apply.

  13. اسحب تسمية من مربع الأدوات إلى منطقة النموذج. ضع التسمية تحت مربع القائمة.

  14. حدد التسمية التي قمت بإضافتها.

  15. In the Properties window, set the Caption property to Select a task to add to the list of dependent tasks, set the Width property to 200, and then click Apply.

  16. اسحب عنصر تحكم مربع تحرير وسرد من مربع الأدوات إلى منطقة النموذج. إلى إضافة a فحص صندوق عنصر تحكم المحتويات إلى the مستند, you must إنشاء a كائن programmatically.

  17. حدد مربع التحرير والسرد الذي قمت بإضافته.

  18. In the Properties window, set the Width property to 300, and then click Apply.

  19. اسحب عنصر تحكم زر أمر (CommandButton) من مربع الأدوات إلى منطقة النموذج. ضع زر الأمر بجوار مربع التحرير والسرد.

  20. قم بتحديد زر الأمر الذي قمت بإضافته.

  21. In the Properties window, set Name to AddDependentTask, set Caption to Add Dependent Task, set Width to 100, and then click Apply.

  22. في منتقي الملفات، انقر فوق جديد.

  23. In the New Field dialog box, type hiddenField in the Name field, and then click OK.

  24. اسحب الحقل hiddenField من منتقي الحقول إلى منطقة النموذج.

  25. In the Properties window, set Visible to 0 - False, and then click Apply.

  26. قم بحفظ منطقة النموذج عن طريق إجراء إحدى المهام التالية:

    • في 2010 Outlook، على علامة التبويب المطور، في المجموعة التصميم انقر فوق الزر حفظ، ثم انقر فوق حفظ منطقة النموذج باسم.

    • في Outlook 2007، في علامة التبويب المطور، في مجموعة التصميم، انقر فوق منطقة النموذج، ثم انقر فوق حفظ منطقة النموذج باسم.

    عندما تقوم بإعادة تمكين معطّل برنامج إضافة-في، تطبيق مباشرة يحاول تحميل إضافة-في.

    يحفظ Outlook منطقة النموذج كملف تخزين نموذج Outlook ـ(.ofs). يتم حفظ منطقة النموذج باسم TaskFormRegion.ofs.

  27. قم بإنهاء برنامج Outlook.

إنشاء مشروع وظيفة Outlook إضافية جديد.

في هذه الخطوة، سوف تقوم بإنشاء مشروع وظيفة Outlook إضافية. لاحقًا في هذه الإرشادات التفصيلية، ستقوم باستيراد منطقة نموذج إلى المشروع.

لإنشاء مشروع وظيفة Outlook إضافية جديد.

  1. إذا كانت المشكلة التي أدت إلى برنامج تطبيق أولاً يعطل إضافة-في تم لا إصلاح، سيتم تطبيق ناعمة يعطل إضافة-في مرة أخرى.Visual Studio

  2. في مربع الحوار مشروع جديد، حدد إنشاء دليل للحل.

  3. احفظ المشروع إلى دليل المشروع الافتراضي.

    لمزيد من المعلومات، راجع كيفية القيام بما يلي: إنشاء مشاريع Office في Visual Studio.

استيراد منطقة النموذج

يمكنك استيراد منطقة النموذج الذي قمت بتصميمه في Outlook في مشروع وظيفة Outlook الإضافية باستخدام المعالج منطقة نموذج Outlook جديدة.

لاستيراد منطقة النموذج في مشروع وظيفة Outlook إضافية

  1. في مستكشف الحلول، انقر بزر الماوس الأيمن فوق مشروع TaskAddIn، أشر إلى إضافة‏‎، ثم انقر فوق عنصر جديد.

  2. In the Templates pane, select Outlook Form Region, name the file TaskFormRegion, and then click Add.

    سيبدأ تشغيل المعالج منطقة نموذج Outlook الجديد .

  3. على الصفحة حدد كيف تريد إنشاء منطقة النموذج، انقر فوق استيراد ملف تخزين نموذج Outlook ـ(.ofs)، ثم انقر فوق استعراض.

  4. In the Existing Outlook Form Region File Location dialog box, browse to the location of TaskFormRegion.ofs, select TaskFormRegion.ofs, click Open, and then click Next.

  5. على الصفحة تحديد نوع منطقة النموذج الذي تريد إنشاؤه، انقر فوق استبدال الكل، ثم انقر فوق التالي.

    تقوم منطقة نموذج استبدال الكل باستبدال نموذج Outlook بأكمله. لمزيد من المعلومات حول أنواع مناطق النموذج , راجع إنشاء مناطق نموذج Outlook.

  6. على الصفحة دعم النص الوصفي و تحديد تفضيلات العرض الخاصة بك، انقر فوق التالي.

  7. On the Identify the message classes that will display this form region page, in the Which custom message classes will display this form region field, type IPM.Task.TaskFormRegion, and then click Finish.

    يتم إضافة ملف TaskFormRegion.cs أو TaskFormRegion.vb إلى مشروعك.

معالجة أحداث عناصر التحكم على منطقة النموذج.

الآن لديك منطقة النموذج في المشروع، يمكنك إضافة تعليمات برمجية تتعامل مع الحدث Microsoft.Office.Interop.Outlook.OlkCommandButton.Click للزر الذي قمت بإضافته إلى منطقة النموذج في Outlook.

و أيضًا إضافة تعليمات برمجية إلى الحدث FormRegionShowing الذي يقوم بتحديث عناصر التحكم على منطقة النموذج عند ظهور منطقة النموذج.

لمعالجة أحداث عناصر التحكم على منطقة النموذج.

  1. في مستكشف الحلول، انقر بزر الماوس الأيمن على TaskFormRegion.cs أو TaskFormRegion.vb، ثم انقر فوق عرض التعليمات البرمجية.

    يتم فتح TaskFormRegion.cs أو TaskFormRegion.vb في محرر التعليمات البرمجية.

  2. قم بإضافة التعليمات البرمجية التالية إلى فئة TaskFormRegion . تقوم هذه التعليمات البرمجية بملء مربع التحرير والسرد في منطقة النموذج بسطر الموضوع لكل مهمة من مجلد مهام Outlook.

    Private Sub populateComboBox()
        Dim Application As New Outlook.Application()
        Dim outlookNameSpace As Outlook.NameSpace = _
        Application.GetNamespace("MAPI")
        Dim taskFolder As Outlook.MAPIFolder = _
        outlookNameSpace.GetDefaultFolder _
            (Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderTasks)
        Dim taskItems As Outlook.Items = taskFolder.Items
        Dim task As Outlook.TaskItem
        For Each task In taskItems
            If Not (task.Subject Is Nothing) Then
                comboBox1.AddItem(task.Subject, System.Type.Missing)
            End If
        Next task
        comboBox1.Text = comboBox1.GetItem(0)
    End Sub
    
    private void populateComboBox()
    {
        Outlook.Application Application = new Outlook.Application();
        Outlook.NameSpace outlookNameSpace = Application.GetNamespace("MAPI");
        Outlook.MAPIFolder taskFolder = outlookNameSpace.GetDefaultFolder(
            Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderTasks);
        Outlook.Items taskItems = taskFolder.Items;
        foreach (Outlook.TaskItem task in taskItems)
        {
            if (task.Subject != null)
            {
                comboBox1.AddItem(task.Subject, System.Type.Missing);
            }
        }
        comboBox1.Text = comboBox1.GetItem(0);
    }
    
  3. قم بإضافة التعليمات البرمجية التالية إلى فئة TaskFormRegion . هذه التعليمة البرمجية تقوم بتنفيذ المهام التالية:

    • تحدد موقع Microsoft.Office.Interop.Outlook.TaskItem في مجلد المهام عن طريق استدعاء الأسلوب المساعد FindTaskBySubjectName وتمرير موضوع المهمة المطلوبة. تقوم بإضافة الأسلوب المساعد FindTaskBySubjectName في الخطوة التالية.

    • تقوم بإضافة القيمتين Microsoft.Office.Interop.Outlook.TaskItem.Subject وMicrosoft.Office.Interop.Outlook.TaskItem.PercentComplete إلى مربع قائمة المهام التابع.

    • تقوم بإضافة موضوع المهمة إلى الحقل المخفي في منطقة النموذج. يخزن الحقل المخفي هاتين القيمتين كجزء من عنصر Outlook.

    Private Sub AddDependentTask_Click1() Handles addDependentTask.Click
        Dim tempTaskItem As Outlook.TaskItem = FindTaskBySubjectName _
            (comboBox1.Text)
        If Not (tempTaskItem Is Nothing) Then
            Me.listBox1.AddItem(tempTaskItem.PercentComplete.ToString() & _
                "% Complete -- " & tempTaskItem.Subject, System.Type.Missing)
            Me.olkTextBox3.Text = Me.olkTextBox3.Text & "|" & tempTaskItem.Subject
        End If
    End Sub
    
        void AddDependentTask_Click()
        {
            Outlook.TaskItem tempTaskItem = FindTaskBySubjectName(comboBox1.Text);
            if (tempTaskItem != null)
            {
                this.listBox1.AddItem(tempTaskItem.PercentComplete.ToString()
    + "% Complete -- " + tempTaskItem.Subject, System.Type.Missing);
                this.olkTextBox3.Text = this.olkTextBox3.Text + "|" + 
                    tempTaskItem.Subject;
            }
        }
    
  4. قم بإضافة التعليمات البرمجية التالية إلى فئة TaskFormRegion . توفر هذه التعليمات البرمجية الأسلوب المساعد FindTaskBySubjectName الذي تم وصفه في الخطوة السابقة.

    Private Function FindTaskBySubjectName(ByVal subjectName As String) _
        As Outlook.TaskItem
        Dim Application As New Outlook.Application()
        Dim outlookNameSpace As Outlook.NameSpace = _
            Application.GetNamespace("MAPI")
        Dim tasksFolder As Outlook.MAPIFolder = _
            outlookNameSpace.GetDefaultFolder _
                (Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderTasks)
        Dim taskItems As Outlook.Items = tasksFolder.Items
        Dim taskItem As Outlook.TaskItem
        For Each taskItem In taskItems
            If taskItem.Subject = subjectName Then
                Return taskItem
            End If
        Next taskItem
        Return Nothing
    End Function
    
    private Outlook.TaskItem FindTaskBySubjectName(string subjectName)
    {
        Outlook.Application Application = new Outlook.Application();
        Outlook.NameSpace outlookNameSpace = Application.GetNamespace("MAPI");
        Outlook.MAPIFolder tasksFolder =
            outlookNameSpace.GetDefaultFolder(
        Microsoft.Office.Interop.Outlook.
            OlDefaultFolders.olFolderTasks);
        Outlook.Items taskItems = tasksFolder.Items;
        foreach (Outlook.TaskItem taskItem in taskItems)
        {
            if (taskItem.Subject == subjectName)
            {
                return taskItem;
            }
        }
        return null;
    }
    
  5. قم بإضافة التعليمات البرمجية التالية إلى فئة TaskFormRegion . هذه التعليمة البرمجية تقوم بتنفيذ المهام التالية:

    • تقوم بتحديث مربع القائمة في منطقة النموذج بحالة الإكمال الحالية لكل مهمة تابعة.

    • تحلل حقل النص المخفي للحصول على الموضوع لكل مهمة تابعة. ثم تحدد موقع Microsoft.Office.Interop.Outlook.TaskItem في مجلد المهام عن طريق استدعاء الأسلوب المساعد FindTaskBySubjectName وتمرير موضوع كل مهمة.

    • تقوم بإضافة القيمتين Microsoft.Office.Interop.Outlook.TaskItem.Subject وMicrosoft.Office.Interop.Outlook.TaskItem.PercentComplete إلى مربع قائمة المهام التابع.

    Private Sub RefreshTaskListBox()
        listBox1.Clear()
        Dim tempTaskItem As Outlook.TaskItem
        Dim tempArray As [String]() = olkTextBox3.Text.Split(New [Char]() {"|"c})
    
        Dim tempString As String
        For Each tempString In tempArray
            tempTaskItem = FindTaskBySubjectName(tempString)
            If Not (tempTaskItem Is Nothing) Then
                Me.listBox1.AddItem(tempTaskItem.PercentComplete.ToString() & _
                    "% Complete -- " & tempTaskItem.Subject, System.Type.Missing)
            End If
        Next tempString
    End Sub
    
    void RefreshTaskListBox()
    {
        listBox1.Clear();
        Outlook.TaskItem tempTaskItem;
        String[] tempArray = olkTextBox3.Text.Split(new Char[] { '|' });
    
        foreach (string tempString in tempArray)
        {
            tempTaskItem = FindTaskBySubjectName(tempString);
            if (tempTaskItem != null)
            {
                this.listBox1.AddItem(tempTaskItem.PercentComplete.ToString()
                    + "% Complete -- " + tempTaskItem.Subject, 
                        System.Type.Missing);
            }
        }
    }
    
  6. قم باستبدال معالج الأحداث TaskFormRegion_FormRegionShowing بالتعليمات البرمجية التالية. هذه التعليمة البرمجية تقوم بتنفيذ المهام التالية:

    • تقوم بملء مربع التحرير والسرد على منطقة النموذج بمواضيع المهام عند ظهور منطقة النموذج.

    • تستدعي الأسلوب المساعد RefreshTaskListBox عند ظهور منطقة النموذج. يعرض هذا أي مهام تابعة تمت إضافتها إلى مربع القائمة عندما تم فتح العنصر مسبقًا.

    Private Sub TaskFormRegion_FormRegionShowing(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing
        populateComboBox()
        RefreshTaskListBox()
    End Sub
    
    private void TaskFormRegion_FormRegionShowing
        (object sender, EventArgs e)
    {
        populateComboBox();
        RefreshTaskListBox();
        this.addDependentTask.Click += new
        Microsoft.Office.Interop.Outlook.
            OlkCommandButtonEvents_ClickEventHandler(AddDependentTask_Click);
    
    }
    

اختبار منطقة نموذج Outlook

لاختبار منطقة النموذج، قم بإضافة مهام إلى قائمة المهام اللازمة على منطقة النموذج. قم بتحديث حالة الإكمال للمهمة اللازمة، ثم قم بعرض حالة الإكمال التي تم تحديثها للمهمة في قائمة المهام اللازمة.

لاختبار منطقة نموذج

  1. اضغط F5 لتشغيل المشروع.

    Outlook يبدأ.

  2. في Outlook، قم بإنشاء مهمة من خلال إجراء إحدى المهام التالية:

    • في 2010 Outlook، على علامة التبويب الصفحة الرئيسية، انقر فوق عناصر جديدة، ثم انقر فوق المهام.

    • في Outlook 2007، من القائمة ملف، أشر إلى جديد، ثم انقر فوق المهام.

  3. In the task form, type Dependent Task in the Subject field.

  4. في علامة التبويب المهام من الشريط، في المجموعة إجراءات، انقر فوق حفظ و إغلاق.

  5. في Outlook، قم بإنشاء مثيل من منطقة النموذج الخاصة بك من خلال إجراء إحدى المهام التالية:

الخطوات التالية

يمكنك معرفة المزيد حول كيفية تخصيص واجهة المستخدم الخاصة بتطبيق Outlook من هذه المواضيع:

راجع أيضًا:

المهام

الإرشادات التفصيلية: تصميم منطقة نموذج Outlook

كيفية القيام بما يلي: إضافة نطاق نموذج إلى مشروع وظيفة Outlook الإضافية

كيفية القيام بما يلي: منع Outlook من عرض منطقة نموذج

كيفية القيام بما يلي: الوصول إلى عنصر Outlook يعرض منطقة النموذج

المبادئ

الوصول إلى منطقة نموذج في وقت التشغيل

إرشادات حول إنشاء مناطق نموذج Outlook

اقتران منطقة النموذج بفئة الرسالة فى Outlook

إجراءات مخصصة في مناطق نماذج Outlook

موارد أخرى

إنشاء مناطق نموذج Outlook