08-10-12, 12:12 PM
كاتب المشاركة : Islam Ibrahim
إضافة التعليمات البرمجية اللازمة للتفاعل مع إطار الأدواتالآن سنقوم بإضافة التعليمات البرمجية للفئة التي تمثل عنصر القائمة, من خلال هذا الكود, سيتم عرض مربع الحوار "Open File", ومن ثم استدعاء الإجراء الجديد LoadFile, لتحميل الملف في عنصر التحكم Windows Media Player.
قم بفتح FirstToolWinPackage.cs
أضف مجال الأسماء System.Windows.Forms
كود :
using System.Windows.Forms;كود :
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;كود :
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);
}
}
}
}كود :
private void ButtonHandler(object sender,
EventArgs arguments)
{
if (playlist != null)
{
control.MediaPlayer.currentPlaylist = playlist;
}
else
{
if (comboValue != null)
{
LoadFile(comboValue);
}
}
}انتهى
