![]() |
|
Visual Studio Extensibility الجزء الثاني- توسيع إطار الأدوات - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الاقسام الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=74) +--- قسم : قسم المقالات العام (http://vb4arb.com/vb/forumdisplay.php?fid=85) +--- الموضوع : Visual Studio Extensibility الجزء الثاني- توسيع إطار الأدوات (/showthread.php?tid=5394) |
Visual Studio Extensibility الجزء الثاني- توسيع إطار الأدوات - RaggiTech - 08-10-12 كاتب الموضوع : Islam Ibrahim
هذا الموضوع هو تكملة لموضوع إنشاء إطار الأدوات Tools Window, حيث سنتحدث فيه عن كيفية توسيع إطار الأدوات الذي قمنا بإنشائه في المقال السابق, بإضافة الزر الذي سيظهر في القائمة Tools لـ Visual Studio, والذي سيقوم بعرض مربع حوار "فتح ملف", لاستعراض ملف ما وتشغيله داخل عنصر التحكم "Windows Media Player" , سنقوم كذلك بإضافة قائمة منسدلة DropDown-List والتي ستقوم بعرض قائمة الملفات المتوفرة لتشغيلها في عنصر التحكم, سننفذ هذا الموضوع في ثلاث خطوات رئيسية:
إضافة مظهر حيوي للعنصر Menu Command افتراضياً أزرار التحكم Menu Commands ثابتة في موضعها ولا يمكن إخفاؤها بعد إظهارها, سنحاول في هذه الفقرة جعلها حيوية المظهر, أي قابلة للظهور أو الاختفاء, وذلك تبعا لحالة إطار الأدوات الخاص بنا, إن كان نشطاً أم لا. يجب علينا أولا تغيير FirstToolWin.vsct لإضافة المظهر الحيوي, ثم تنفيذ منطق معيَن لتعيين المظهر عن طريق الكود, سنقوم بإنشاء فئة تحتوي بداخلها على أحداث إطار الأدوات Events, ثم جعل عنصر Menu الخاص بنا قابلا للوصول Accessible in code, ثم ربط الأحداث مع هذا العنصر. افتح المشروع FirstToolWin الذي قمت بإنشائه في هذا الموضوع. في مستكشف المشاريع Solution Explorer, افتح FirstToolWin.vsct . ابحث عن العنصر <Button> الذي يملك المعرِّف cmdidWindowsMedia , بين العنصر <Icon> والعنصر <Strings> أضف ما يلي: كود : <CommandFlag>DefaultInvisible</CommandFlag>لإنشاء أحداث إطار الأدوات, قم بما يلي: في مستكشف المشاريع, أنقر بزر الماوس الأيمن فوق اسم المشروع الحالي, ثم اختر Add, ثم انقر فوق "Class". في مربع الحوار "Add New Item", قم بتسمية الفئة الجديدة ToolWindowEvents ثم انقر "Add". افتح ToolWindowEvents ثم أضف الأسطر التالية بعد عبارات Using: كود : using Microsoft.VisualStudio.Shell.Interop;كود : public sealed class ToolWindowEvents : IVsWindowFrameNotify3قم بتنفيذ الإجراء OnShow الخاص بالواجهة كما يلي: كود : [PrincipalPermission(SecurityAction.Demand)]لاحظ كذلك أن الكود السابق يحتوي المتغير المسمى package هذا المتغير سيمرّر إلى المنشئ . بعد ذلك, أضف الكود التالي إلى أعلى الفئة, فوق إجراءات الواجهة IVsWindowFrameNotify3 كود : private FirstToolWinPackage package;في مستكشف المشاريع, افتح الملف FirstToolWinPackage.cs, سنجعل عنصر القائمة Menu Command قابلاُ للوصول من خلال الفئة ToolWindowEvents عرِّف كائن من النوع MenuCommand في أعلى الفئة, والذي سيمثل عنصر MenuCommand الخاص بنا. كود : public MenuCommand toolMenuItem1;كود : MenuCommand menuItem = new MenuCommand(MenuItemCallback, menuCommandID);كود : menuCommandID = new CommandID(GuidList.guidFirstToolWinCmdSet, (int)PkgCmdIDList.cmdidWindowsMedia);لاحقا, سنقوم بإنشاء نسخة من إطار الأدوات, ونسخة من الفئة الجديدة, عندها يمكننا ربط الأحداث بإطار الأدوات. لربط الأحداث, قم بما يلي: في مستكشف المشاريع, افتح MyToolWindow.cs, قم بعمل Overriding للإجراء OnToolWindowCreated بإضافة الأسطر التالية قبل نهاية الملف كود : public override void OnToolWindowCreated()احفظ الملف. لتجربة الكود السابق, قم بما يلي:
Visual Studio Extensibility الجزء الثاني- توسيع إطار الأدوات - RaggiTech - 08-10-12 كاتب المشاركة : Islam Ibrahim
إضافة التعليمات البرمجية اللازمة للتفاعل مع إطار الأدواتالآن سنقوم بإضافة التعليمات البرمجية للفئة التي تمثل عنصر القائمة, من خلال هذا الكود, سيتم عرض مربع الحوار "Open File", ومن ثم استدعاء الإجراء الجديد LoadFile, لتحميل الملف في عنصر التحكم Windows Media Player. قم بفتح FirstToolWinPackage.cs أضف مجال الأسماء System.Windows.Forms كود : using System.Windows.Forms;كود : OpenFileDialog openFileDialog = new OpenFileDialog();استخدام ComboBox في شريط أدوات إطار الأدوات يمكنك ملئ أداة DropDown ComboBox في شريط الأدوات Toolbar الخاص بإطار الأدوات, بإضافة Playlist (قائمة تشغيل), فيصبح بإمكان المستخدم اختيار ملف مباشرة من ComboBox لتشغيله وعرضه داخل Media Player, أو عن طريق كتابة اسم الملف في ComboBox, للقيام بذلك سنستخدم كلا الحدثين التاليين: حدث اختيار أو كتابة اسم الملف, والثاني لملئ قائمة التشغيل, لتحديد ما إذا قام المستخدم بكتابة اسم الملف أو قائمة التشغيل, سنقوم بمقارنة الاسم الذي تم إدخاله إن كان في القائمة فعلاً, عندها سيكون playlist وإلا سيكون ملفاً. في المقال السابق, قمنا بإضافة معالجي حدثين: ComboHandler و ComboListHandler , الآن سنقوم بإضافة دعم Playlist للحدثين السابقين, وكذلك إضافة متغيرين لحفظ ما قام المستخدم بإدخاله أو اختياره, عندما يقوم المستخدم بإدخال أو اختيار عنصر ما, سيتم حفظ القيمة في المتغير المناسب, وعندما يقوم المستخدم بالضغط على الزر, سيتم قراءة ذلك المتغير, ثم سيتم تشغيل الـ Playlist أو الملف. لتمكين قائمة التشغيل Playlist في Media Player: افتح الملف MyToolWindow.cs. أضف الأسطر التالية إلى أعلى الفئة: كود : WMPLib.IWMPPlaylist playlist = null;كود : private void ComboHandler(object sender, EventArgs arguments)كود : private void ButtonHandler(object sender, انتهى Visual Studio Extensibility الجزء الثاني- توسيع إطار الأدوات - RaggiTech - 08-10-12 http://vb4arb.com/vb/uploaded/18_01349684023.zip |