![]() |
|
مقال: الكومبو بوكس ComboBox كيف تضيف أيقونات - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم مقالات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=184) +--- الموضوع : مقال: الكومبو بوكس ComboBox كيف تضيف أيقونات (/showthread.php?tid=4185) |
مقال: الكومبو بوكس ComboBox كيف تضيف أيقونات - Blue Sky - 17-09-12 اخواني الكرام
في سؤال لأحد الزملاء بالموقع عن كيفية إظهار Drives الموجودة علي الهارد ديسك داخل كونترول مثل Listview وإضافة أيقونات لها للأسف كنت مشغول ولم استطيع ان أرد عليه بالشكل المناسب ومن اجل ذلك أردت ان أرد عليه بهذا الموضوع لكي نستفيد جميعا في الواقع إن استخدام الكونترول بشكل عام يحدده احتياجات البرنامج الذي نصممه مثلا عندما أريد أن اعرض جميع Drives الموجوده داخل الكمبيوتر من الأفضل ان أختار الكونترول المناسب لمثل هذه العملية عموما انا لن أناقش هنا كيفية التخطيط للبرامج أو كيفية تحديد الكونترول المناسب للكود المناسب فتخطيط البرامح علم كبير جدا الأن لكن مثلا عندما أريد ان استعرض Drives الموجوده علي الكمبيوتر من الأفضل ان اختار لذلك ComboBox لأن صفاته Properties الخاصة بهذا الكونترول مهيأة لمثل هذا الهدف عموما هذا رأي شخصي مش أكتر الحقيقة الجزء الي يهمني هنا أن اتحدث عنه هو كيفية إضافة أيقونات مناسبة الي الكومبو بوكس مثلا او إلي أي كونترول اخر فعملية إضافة أسماء Drives الي الكومبوبوكس أو حتي أي كونترول أخر ليست هي الجزء الهام في الامر فهي امر سهل يعلمه الجميع كما يعلم الجميع إن أي كونترول من الممكن تغيير شكله وتغيير صفاته وأيضا يمكن بناؤه كاملا لناخذ مثالا علي ذلك الكومبو بوكس ومن اجل ان لا أطيل عليكم ٍادخل مباشرة في الموضوع بعض الكونترول الموجوده بداخل الفيجوال استوديو بها خاصية OwnerDraw وهي خاصية تسمح للمبرمج بتطوير الكونترول والتغيير فيه بما يناسب البرنامج الذي يصممه ومثال علي ذلك الكومبو بوكس مثلا كيف نستفيد من هذه الخاصية لنعيد رسم الكومبوبوكس ومن ثم نضيف له بعض الأيقونات لكي يظهر بشكل أفضل اولا نقوم بفتح مشروع windowforms عادي جدا أولا: نضيف الي المشروع كلاس جديد ولنطلق عليه مثلا DirComboBox ثانيا: من داخل هذا الكلاس نقوم بعمل Inherits لكومبوبوكس ثالثا: نضيف له بعض Items ولتكن مثلا Drives الموجوده علي الهارد ديسك الجزء التالي من الكود يوضح الخطوات الثلاث السابقة في واقع الأمر فيه شئ قمت باستخدامه هنا وهو كلاس مهم جدا ربما نتحدث عنه في مقال اخر وهو LicenseManager ولقد قمت باستخدامه لتحديد ان عملية إضافة Items الي الكومبوبوكس يجب ان تتم في حالة RunTime Modes أي أثناء تشغيل البرنامج فقط لا غير كود : Imports System.ComponentModelرابعا: نقوم بعمل Overrides كلاس sub الموجودة داخل الكومبوبوكس وهو Sub OnDrawItem هنا سنتوقف قليلا لتوضيح الفكره الفكرة ببساطة تعتمد علي إضافة بعض Resources للمشروع تمثل بعض الأيقونات التي سوف تظهر بجانب كل Drive موجود داخل الكمبيوتر مثل الهارد ديسك او CD/DVD وغيرهم وبعد ان نقوم بتعريف الايقونات نقوم برسمها داخل الكومبوبوكس مع ربط كل أيقونة بكل Drive يناسبها عن طريق استخدام Select Case وايضا نقوم برسم Text وهو هنا سيكون اسماء Drives بالإضافة الي VolumeLabel كما تلاحظون كل شئ تم باستخدام +GDI وأعتقد الدوت نت جعل الأشياء افضل ووفر الوقت في حاجات كتيير لكن المهم نعرف أين وكيف وماذا نستخدم لكي نصل الي ما نريد نفس الفكرة ممكن استخدامها مع Listview ايضا مع بعض التغييرات البسيطة الكود التالي يوضح الكود كاملا واعتقد انه بسيط ومش محتاج تفسيرات كثيرة عموما لمن يريد الاستفسار يمكنه ان يسال كود : Imports System.ComponentModelكود : text = drive.VolumeLabel & " (" & drive.Name & ")" & "كود : e.Graphics.DrawString(text, e.Font, New SolidBrush(e.ForeColor), e.Bounds.X + imgbox.Width + 2, e.Bounds.Y)C:\Programfiles\Microsoft visual Studio 9.0\common7 ستجدون ملف مضغوط اسمه VS2008ImageLibrary ونفس الشئ بالنسبة للفيجوال 2005 C:\Programfiles\Microsoft visual Studio 8.0\common7 ستجدون ملف مضغوط اسمه VS2005ImageLibrary قم بفك الملفات المضغوطه ستجدون بها الكثير من الايقونات وملفات animations وغيرهم حيث يمكن استخدامها داخل برامجك بالتوفيق أخوكم عمر الكاتب الأصلي : Silverlight RE: مقال: الكومبو بوكس ComboBox كيف تضيف أيقونات - invocker - 30-06-19 جزاك الله خيرا |