إنشاء قائمة منسدلة لشخصيات Microsoft Agent

This article is available in English too, check it out here.

كنا قد تكلمنا سابقا عن كيفية التعامل مع شخصيات Microsoft Agent في برنامجك، ولكننا قد أهملنا الكلام عن كيفية تغيير القائمة المنسدلة الأساسية الخاصة بالشخصية والتي لا تحوي سوى عنصر واحد فقط وهو Hide لإخفاء الشخصية. وأتوقع أنكم مستائين منها كثيرا (مثلا تماما.)

واليوم نتكلم عن كيفية إنشاء القائمة المنسدلة الخاصة بك، وإضافة العناصر التي تريدها إلى هذه القائمة.

أولا، قم بفتح مشروعك الذي يستخدم هذه التقنية. وفي المشروع قم بإنشاء القائمة المنسدلة التي تريدها باستخدام الأداة System.Windows.Forms.ContextMenuStrip. قم بإضافة العناصر التي تريدها إلى القائمة وكتابة الأكواد الخاصة بهذه العناصر.

الآن، إلى عملية الربط. اذهب إلى الكود الذي يقوم بتحميل الشخصية من الملف الخاص بها وقم بإلغاء القائمة الأساسية عن طريق تحديد الخاصية AutoPopupMenu الخاصة بعنصر الشخصية لتصبح False. لاحظ الكود التالي:

    // C# Code

    AxAgentObjects.AxAgent agentCtl;
    AgentObjects.IAgentCtlCharacterEx agentChar;

    // initializing 'agentCtl'
    // . . .

    agentCtl.Characters.Load("Merlin", "merlin.acs");
    agentChar = agentCtl.Characters.Character("Merlin");
    agentChar.AutoPopupMenu = false;
    ' VB.NET Code

    Dim agentCtl As AxAgentObjects.AxAgent
    Dim agentChar As AgentObjects.IAgentCtlCharacterEx

    ' initializing 'agentCtl'
    ' . . .

    agentCtl.Characters.Load("Merlin", "merlin.acs")
    agentChar = agentCtl.Characters.Character("Merlin")
    agentChar.AutoPopupMenu = False

إلى الآن، قمنا بإلغاء استخدام القائمة الأساسية فقط. الآن ننتقل إلى النقطة الأكثر إثارة، وهي ربط القائمة الجديدة بالشخصية. يمكنك ذلك عن طريق استخدام الحدث ClickEvent الخاص بأداة Microsoft Agent والذي ينطلق عند ضغط المستخدم على الشخصية بالفأرة.

لاحظ الكود التالي:

// C# Code

// agentCtl.ClickEvent += agent_ClickEvent;

public void agentCtl_ClickEvent _
    (object sender, AxAgentObjects._AgentEvents_ClickEvent e)
{
    // check for this if you have many characters
    if (e.characterID == "Merlin")
    {
        if (e.button == 2) // 1 = left, 2 = right
        {
            myContextMenu.Show(e.x, e.y);
        }
    }
' VB.NET

Public Sub agentCtl_ClickEvent(ByVal sender As object, _
        ByVal e As AxAgentObjects._AgentEvents_ClickEvent) _
        Handles agentCtl.ClickEvent
    ' check for this if you have many characters
    If (e.characterID = "Merlin") Then
        If (e.button = 2) Then ' 1 = left, 2 = right
            myContextMenu.Show(e.x, e.y)
        End If
    End If
End Sub

نلاحظ أننا قمنا أولا باكتشاف ما إذا كانت هذه هي الشخصية المطلوبة أم لا. لاحظ أنه في حالة استخدامك لأكثر من شخصية فسوف تحتاج إلى هذا السطر (على الأغلب.) بعد ذلك قمنا باكتشاف ما إذا تم الضغط بزر الفأرة الأيمن (والذي يرمز إليه الرقم 2 بينما الأيسر يرمز إليه الرقم 1) أم لا.

وأخيرا، قمنا بإظهار القائمة المنسدلة من النقطة التي ضغط عليها المستخدم.

رأيان حول “إنشاء قائمة منسدلة لشخصيات Microsoft Agent

  1. بالتأكيد، سهل وبسيط جدا.

    يمكنك ذلك باستخدام الأداة
    Microsoft Agent Character Editor

    رابط التحميل:
    http://www.microsoft.com/downloads/details.aspx?FamilyID=c21be0ec-1712-427d-a43d-94c122ef8eb6

    رابط الشرح:
    http://msdn.microsoft.com/en-us/library/ms695797.aspx

    سوف نخصص بإذن الله درس لشرح هذا الموضوع عن قريب بإذن الله تعالى

    إعجاب

  2. بالتأكيد، سهل وبسيط جدا.

    يمكنك ذلك باستخدام الأداة
    Microsoft Agent Character Editor

    رابط التحميل:
    http://www.microsoft.com/downloads/details.aspx?FamilyID=c21be0ec-1712-427d-a43d-94c122ef8eb6

    رابط الشرح:
    http://msdn.microsoft.com/en-us/library/ms695797.aspx

    سوف نخصص بإذن الله درس لشرح هذا الموضوع عن قريب بإذن الله تعالى

    إعجاب

اترك تعليقا

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

شعار ووردبريس.كوم

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   /  تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   /  تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   /  تغيير )

Connecting to %s