01-10-12, 03:45 PM
كاتب الموضوع : محمد الناشـري
بسم الله الرحمن الرحيم كثيرا ما تحتاج الى تنفيذ حدث معين لعنصر تحكم ما ... فنذهب بكل بساطة الى محرر الكود ونختار وقت الحدث ثم نكتب مانريد من عنصر التحكم تنفيذة عند وقوع الحدث ...
ولكن ماذا لو اننا تريد تنفيذ نفس الحدث على اكثر من نسخة من العنصر داخل الفورم ..
سيلزمنا حينها ان نعيد كتابة الحدث لكل عنصر ... مما يعد امرا مرهقا بعض الشئ ...
بصفة أوضح ..
ماذا لوكان لدينا نموذج وبة عدد لاباس به من عنصر التجكم TextBox ونريد عند التركيز على عنصر التكست ان يتحول لونة الى الاصفر لينبة المستخدم بانة هو العنصر الذي سيتم الكتابة فية .. مثلا ..
سنقوم بلاشك بجعل لون الخلفية للعنصر تساوي اللون الاصفر عند حدث التركيز .... وسنعيدها الي اللون الابيض عند فقد التركيز .. المهمة تبدو سهلة بعض الشئ ولكن ما ذا لو أردنا تطبيق ذلك على جميع عناصر TextBox الموجودة في الفورم ..... بلاشك سنحتاج الى الاشارة الى كل عنصر بتنفيذ احداث معينة نود تنفيذها ..
والنتيجة كم هائل من الكود ....
يتيح بيئة الدوت نت امكانية اشتقاق الكنترول وتطويرة بما يتناسب مع احتياجنا .. وللقيام بذلك
كل ما عليك هو البدء بمشروع جديد ثم اختر Windows Forms Control Library ....
وقم بتسمية المشروع MohdTextBox مثلا ...
نبدا العمل بتغيير اسم كائن UserControl 1 الى MohdTextBox.vb ثم نقوم بحفظ المشروع ..
انقر show all في نافذة Solution Explorer لتري جميع ملفات المشروع .. يوجد اسفل ملف MohdTextBox.vb الملف المسمى MohdTextBox.Designer.vb قم بفتحة وستشاهد ان الملف يبدا بالعبارتين التاليتين
كود :
[color=#000000][COLOR=#0000bb]Partial [/color][color=#007700]Public Class [/color][COLOR=#0000bb]MohdTextBox
Inherits System[/COLOR][color=#007700].[/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][COLOR=#0000bb]UserControl
[/COLOR][/COLOR]
تدل العبارة الاولى الى ان الملف باكملة ينتمى الى فئة MohdtextBox ...
لاشتقاق جميع خصائص عنصر التحكم TextBox علينا بتغيير العبارة الثانية لتصبح كالتالي
كود :
[color=#000000][COLOR=#0000bb]Inherits System[/color][color=#007700].[/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][COLOR=#0000bb]TextBox
[/COLOR][/COLOR]
وبهكذا نكون قد انشأنا عنصر تجكم جديد واشتققنا جميع خصائص TextBox ..
ولكن ماالفائدة من ذلك .... بلاشك اننا نريد أن اضافة امكانيات جديدة لعنصر التحكم الخاص بنا ..
ننتقل الان الى الكود الخاص بالكائن MohdTextBox.vb وحيث اننا نريد يتغير لون خلفية مربع النص الى اللون الاصفر عندما يكون عنصر التحكم نشطاً لذا علينا أن نكتب الكود الخاص بنا في حدث Enter الخاص بعنصر التحكم ..
نقوم بتوسيع القائمة المنسدلة Events وحدد الحدث Enter ثم نكتب الاتي
كود :
[color=#000000][COLOR=#007700]Private [/color][color=#0000bb]Sub MohdTextBox_Enter[/color][color=#007700]([/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]ByVal e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]EventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles Me[/color][color=#007700].[/color][COLOR=#0000bb]Enter
Me[/COLOR][color=#007700].[/color][color=#0000bb]BackColor [/color][color=#007700]= [/color][color=#0000bb]Color[/color][color=#007700].[/color][COLOR=#0000bb]Yellow
End Sub
[/COLOR][/COLOR]
بعد ذلك لابد لنا بان نقوم ببرمجة الحدث Leave حتي يتم اعادة ضبط اللون الخلفية الى اللون الابيض .عند الغاء تنشيطة ...
كود :
[color=#000000][COLOR=#007700]Private [/color][color=#0000bb]Sub MohdTextBox_Leave[/color][color=#007700]([/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]ByVal e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]EventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles Me[/color][color=#007700].[/color][COLOR=#0000bb]Leave
Me[/COLOR][color=#007700].[/color][color=#0000bb]BackColor [/color][color=#007700]= [/color][color=#0000bb]Color[/color][color=#007700].[/color][COLOR=#0000bb]White
End Sub
[/COLOR][/COLOR]
نقوم الان بعمل Build لمشروعنا ...وبكذا نكون قد انشانا عنصر تحكم به الخاصية الاضافية وهي تغير لون الخلفية عند تنشيط العنصر .. ونستطيع استخدامة في اي مشروع خاص بنا او ارسالة لمن نشاء ليستخدمة ...
ولاضافة عنصر التحكم الجديد الى اي مشروع نذهب الى نافذة ToolBox ونضغط على زر الفارة الايمن ونختار Choose Itemes ومن نافذة Choose ToolBox Itemes نضغط زر الاستعراض ونذهب الى مشروعنا وداخل مجلد Bin سنجد الملف MohdTextBox.dll نختارة ونضغط فتح وسيتم اضافتة الى المشروع ..
يتبع ...