تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Visual Studio Extensibility الجزء الثاني- توسيع إطار الأدوات
#2
كاتب المشاركة : Islam Ibrahim

إضافة التعليمات البرمجية اللازمة للتفاعل مع إطار الأدوات

الآن سنقوم بإضافة التعليمات البرمجية للفئة التي تمثل عنصر القائمة, من خلال هذا الكود, سيتم عرض مربع الحوار "Open File", ومن ثم استدعاء الإجراء الجديد LoadFile, لتحميل الملف في عنصر التحكم Windows Media Player.

قم بفتح FirstToolWinPackage.cs

أضف مجال الأسماء System.Windows.Forms


كود :
using System.Windows.Forms;
ابحث عن الإجراء MenuItemCallback هذا هو معالج حدث النقر على عنصر القائمة, استبدل محتويات الإجراء MenuItemCallback بما يلي:


كود :
OpenFileDialog openFileDialog = new OpenFileDialog();
DialogResult result = openFileDialog.ShowDialog();
if (result == DialogResult.OK)
{
MyToolWindow window = (MyToolWindow)(this.FindToolWindow(
typeof(MyToolWindow), 0, true));
if (window != null)
{
window.LoadFile(openFileDialog.FileName);
}
}
احفظ التغييرات الجديدة.

استخدام ComboBox في شريط أدوات إطار الأدوات

يمكنك ملئ أداة DropDown ComboBox في شريط الأدوات Toolbar الخاص بإطار الأدوات, بإضافة Playlist (قائمة تشغيل), فيصبح بإمكان المستخدم اختيار ملف مباشرة من ComboBox لتشغيله وعرضه داخل Media Player, أو عن طريق كتابة اسم الملف في ComboBox, للقيام بذلك سنستخدم كلا الحدثين التاليين: حدث اختيار أو كتابة اسم الملف, والثاني لملئ قائمة التشغيل, لتحديد ما إذا قام المستخدم بكتابة اسم الملف أو قائمة التشغيل, سنقوم بمقارنة الاسم الذي تم إدخاله إن كان في القائمة فعلاً, عندها سيكون playlist وإلا سيكون ملفاً.

في المقال السابق, قمنا بإضافة معالجي حدثين: ComboHandler و ComboListHandler , الآن سنقوم بإضافة دعم Playlist للحدثين السابقين, وكذلك إضافة متغيرين لحفظ ما قام المستخدم بإدخاله أو اختياره, عندما يقوم المستخدم بإدخال أو اختيار عنصر ما, سيتم حفظ القيمة في المتغير المناسب, وعندما يقوم المستخدم بالضغط على الزر, سيتم قراءة ذلك المتغير, ثم سيتم تشغيل الـ Playlist أو الملف.

لتمكين قائمة التشغيل Playlist في Media Player:

افتح الملف MyToolWindow.cs.

أضف الأسطر التالية إلى أعلى الفئة:



كود :
WMPLib.IWMPPlaylist playlist = null;
قم باستبدال معالجي الحدثين ComboHandler و ComboListHandler الموجودين مسبقا بما يلي:


كود :
private void ComboHandler(object sender, EventArgs arguments)
{
var eventArgs = arguments as OleMenuCmdEventArgs;
if (eventArgs != null)
{
var output = eventArgs.OutValue;
var input = eventArgs.InValue;
if (input != null)
{
// Save away the value from the combobox.
comboValue = input.ToString();
playlist = null;

// Check if string is the name of a playlist.

// Declare the playlist
// and playlistarray variables.
WMPLib.IWMPPlaylist aplaylist;
WMPLib.IWMPPlaylistArray playlistarray;

// Get the array of playlists from the
// media player.
playlistarray = control.MediaPlayer.
playlistCollection.getAll();

// Iterate through the array.
Int32 i, count;
count = playlistarray.count;
if (count > 0)
{
for (i = 0; i < count - 1; i++)
{
aplaylist = playlistarray.Item(i);
if (aplaylist.name == comboValue)
{
playlist = aplaylist;
}
}
}
}
else if (output != null)
{
Marshal.GetNativeVariantForObject(
comboValue, output);
}
}
}

private void ComboListHandler(object sender,
EventArgs arguments)
{
var eventArgs = arguments as OleMenuCmdEventArgs;
if (eventArgs != null)
{
IntPtr output = eventArgs.OutValue;
if (output != null)
{
// Declare the playlist and
// playlistarray variables.
WMPLib.IWMPPlaylist aplaylist;
WMPLib.IWMPPlaylistArray playlistarray;

// Get the array of playlists from the
// media player.
playlistarray = control.MediaPlayer.
playlistCollection.getAll();

// Iterate through the array
Int32 i, count;
count = playlistarray.count;
if (count > 0)
{
string[] names = new string[count];
for (i = 0; i < count - 1; i++)
{
aplaylist = playlistarray.Item(i);
names[i] = aplaylist.name;
}
Marshal.GetNativeVariantForObject(
names, output);
}
}
}
}
استبدل معالج الحدث الخاص بالزر ButtonHandler الموجود مسبقا بما يلي:


كود :
private void ButtonHandler(object sender,
EventArgs arguments)
{
if (playlist != null)
{
control.MediaPlayer.currentPlaylist = playlist;
}
else
{
if (comboValue != null)
{
LoadFile(comboValue);
}
}
}
الآن يمكنك تجربة إطار الأدوات الجديد في البيئة التجريبية لـ Visual studio.


انتهى
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
Visual Studio Extensibility الجزء الثاني- توسيع إطار الأدوات - بواسطة Raggi Tech - 08-10-12, 12:12 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  حصرياً جميع روابط Microsoft Visual Studio.Net مباشرة وشغالة 100% من شركة Microsoft أسامة أحمد 11 27,008 14-01-24, 10:55 AM
آخر رد: سعيدة نبيل
  تحميل برنامج مايروسوفت فيجوال بيسك Download Microsoft Visual Basic mohamed atef2018 2 5,468 09-07-16, 10:58 PM
آخر رد: عمور2016
  مجموعة من الأدوات المجانية والمفتوحة المصدر ali.alfoly 8 5,164 28-08-13, 12:05 AM
آخر رد: Riad Soft
  الفوارق الأشيع بين لغات .net الأربع (C#- Visual basic - C++-CLI- F#) RaggiTech 0 4,494 27-10-12, 04:20 PM
آخر رد: RaggiTech
  درس-التشفير - الجزء الثانى(Deep in) RaggiTech 2 3,348 09-10-12, 06:44 PM
آخر رد: RaggiTech
  زمن المعالجات - Microsoft Visual Studio LightSwitch RaggiTech 0 2,803 09-10-12, 06:27 PM
آخر رد: RaggiTech
  كيفيه اداره الاحداث فى بيئه الدوت نت الجزء الثالث how To Handle Events in.net Part 3 RaggiTech 0 2,163 09-10-12, 05:22 PM
آخر رد: RaggiTech
  كيفيه اداره الاحداث فى بيئه الدوت نت الجزء الثانى how To Handle Events in .net Part 2 RaggiTech 0 2,169 09-10-12, 05:21 PM
آخر رد: RaggiTech
  كيفيه اداره الاحداث فى بيئه الدوت نت الجزء الاول part 1 how to Handle Events in .net RaggiTech 0 2,044 09-10-12, 05:20 PM
آخر رد: RaggiTech
  مدخل إلى Visual Studio Extensibility باستخدام Visual Studio SDK RaggiTech 0 2,658 09-10-12, 05:05 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: