تم فتح هذا الموضوع استجابة لما ذكر فى الرابط التالى
وقد صوت للموضوع الكثير من الاعضاء ونريد ان نرى مدى الاستجابه
تم فتح هذا الموضوع استجابة لما ذكر فى الرابط التالى
وقد صوت للموضوع الكثير من الاعضاء ونريد ان نرى مدى الاستجابه
كانت اول مشاركات من الاخ musaireae (الاسم صعب قوى يا اخ :lol: :lol: )وهى كالتالى:
اقتباسالموضوع الطروح يتكلم عن خاصية USER CONTROL في لغة #C .كيفية المشاركة : اما عن طريق طرح اسئلة عن الموضوع او عن طريق ارفاق برامج تتكلم عن الموضوع ولكن اي برنامج يرفق لابد ان يرفق معه شرح لة .
اقتباسما هي خاصية USER CONTROL :هي خاصية في لغات .NET تمكن من
• تقليل الكود المكتوب
• وضع نموذج موحد لكل OBJECT المتككرة لديك
• امكانية التعديل على جميع OBJECT المتككرة في آن واحد .
و لاضافة USER CONTROL عن طريق الذهاب الى project ثم الضغط على add user control وللمعلومية كل user control لة اسم خاص بة تابع للامتداد cs.
اقتباسهذا مثال مبسط لكيفية التعامل مع user contrl كبداية للموضوع .
وقد ارفق المثال على الرابط التالى
جزاه الله كل الخير ونريد ان نرى الحماسه التى كانت موجوده وقت طرح الموضوع واخذ الاراء
نقلاً عن الاخ musaireae
اقتباساشكر كل من قام بالاطلاع على الموضوع .ولكن اين تعليقاتكم و اسئلتكم و مشاركاتكم للموضوع لكي تساعدون الفكرة على النهوض و البدء من الصفر بخطى واضحة و صحيحه و الاهم من ذلك ان يكون هناك فائده تعم الجميع .
انتظر مشاركاتكم وليس فقط الاطلاع على الموضوع ارجوكم
وساكمل بإذن الله
توكلنا على الله
الكنترول يمثل واجهه رسوميه تربط بين المستخدم والبرنامج...والكنترول يمكنه عرض او معالجة بيانات واستقبال دخل واستجابه لبعض الاحداث مثل الضغط عليهوتنفيذ عدد من الاجراءات المرتبطه بالمستخدم والتطبيق...ولان الكنترول يتمتع بواجهه رسوميه فيمكنه التفاعل مع المستخدم..ويتم عمل الكنترولز لخدمة اغراض معينه او مهمه معينه لكل كنترول...وعملية تاليف او صنع كنترول هى مجرد مهمه برمجيه لها عدة خطوات سنتابعها معاً باذن الله
لعمل كنترول يجب عليك :-
1- تحديد المهمه التى تريد عمل كنترول من اجلها وما الدور الذى سيلعبه الكنترول ومع اعتبار العوامل الاتيه
*ما نوع الواجهه الرسوميه الذى ساحتاجه
*ما هى تفاعلات الكنترول مع المستخدم
*هل المهمه التى اريدها يوفرها اى كنترول اخر
*هل يمكننى الحصول على المهمه التى اريدها من خلال دمج العديد من الكنترولز المتوفره فعلاً
2-حدد نوع الكنترول الذى تريده مثل
user control, custom control, inherited Windows Forms control
3- عبر عن وظيفةالكنترول فى صورة خصائصproperties و دوال (اجراءات) methodsو احداث events
4-اذا كنت ستحتاج رسومات اواطارات معينه بالوان محدده ...اذن فانت تحتاج الى GDI+ وفى هذه الحاله يجب عليك ان تكون ملماً بها وكيفية التعامل معها
5-قم بعمل مشروع windows application تقوم باختبار الكنترول فيه...ثم قم بالتعديل على الكنترول حتى تصل الى النتيجه المطلوبه
6-اذا كان الكنترول سيستخدم على نطاق واسع قم بعمل DEPLOY(البعض يطلق عليها تحزيم)
ملاحظه : يفضل ان تكون المهمه التى سيتم عمل كنترول من اجلها مهمه متكرره ويكثر الاحتياج اليها من قبل تطبيقات كثيره
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
والان دعنا نطبق هذا الكلام عملياً
كما قلنا من قبل ان الكنترول عباره عن كائن رسومى يمكن صنعه واعادة استخدامه فيما بعد ويمكن ان يتكون من دمج عدد من الكنترولز او عدة اسطر من الكود...
ما سنفعله الان هو عمل كنترول يسمى clockقم بعمل مشروع جديد file>>new >>>project>>>windows control library
واجعل اسمه clock
قم بالضغط على F7 لاظهار الكود وقم بتحديد public class UserControl1 فى الكود وقم بتغيير اسمها الى user_clock
وقم بتحديد public UserControl1() وقم بتغييرها الى public user_clock()
(وذلك لانه constructor ويجب ان يكون اسمه مثل ال class )
قم باظهار ال solution explorer وغير الاسم usercontrol1.cs الى user_clock.cs
من قائمة file اختار save all
بعد ذلك سنقوم باضافة الكنترولز و المكونات اللازمه لتكوين الواجهه الرسوميه الخاصه بالكنترول الجديد
قم بسحب label من ل toolbox ووضعه فى الكنترول وغير خصائص ال label الى الاتى
Name lblDisplay Text (blank space) TextAlign MiddleCenter Font.Size 14
ثم قم باضافة timer من الtoolbox ,,,والتايمر عباره عن component فهو لا يظهر فى ال visual designer ولكنه يظهر فى component tray
قم بتغيير خصائص ال timer التاليه من خلال properties window
Interval property to 1000
Enabled property to true.
قم بالضغط على timer مرتين واضف التالى
lblDisplay.Text = DateTime.Now.ToLongTimeString();
ستم تنفيذ الكود السابق كل واحد ثانيه ...اى انه كل ثانيه سيقوم بعرض الوقت الحالى فى label
اضافة خصائص للكنترول
لاحظنا فيما سبق ان الكنترول الخاص بك هو عباره عن دمج Label و timer علماً بأن كل منهم له خصائصه الداخليه المستقله به والتى لا يمكن للمستخدم الوصول اليها من خلال الكنترول الجديد الخاص بك ...فمثلاً ال timer الموجود بالكنترول لديك له خاصية interval فى حين انك اذا استخدمت الكنترول الخاص بيك فى مشروع windows application
(كما سنرى فيما بعد) ستجد ان هذه الخاصيه غير موجوده ...وبالتالى انت تحتاج الى اضافة خصائص للكنترول الخاص بك تسمح للمستخدم بالتغيير والتحكم فى مثل هذه الاشياء
والان قم بعمل التالى
اضف هذه الاسطر بعد بداية
public class user_clock
والاسطر هى
private Color colFColor;
private Color colBColor;
public Color ClockBackColor
{
get
{
return colBColor;
}
set
{
colBColor = value;
lblDisplay.BackColor = colBColor;
}
}
public Color ClockForeColor
{
get
{
return colFColor;
}
set
{
colFColor = value;
lblDisplay.ForeColor = colFColor;
}
}والاسطر السابقه تقوم بعمل خصائص لتتيح للمستخدم تغير لون الخلفيه الخاص بال label الموجود داخل الكنترول الخاص بك(لا مجال لشرحها عنها فالموضوع يختص بال custom controls لمزيد من المعلومات او لزيادة توضيح النقطه السابقه يمكنك البحث عن properties in c#)
واخيراً قم بالحفظ save all واعمل build
الخطوه التاليه ...هى اختبار الكنترول
قم بعمل الاتى دون اغلاق المشروع الحالى
File>>>Add Project>>New Project>>windows application
وادخل الاسم test
من ال solution explorer قم بالضغط بالزر الايمن للماوس على References واختار Add Reference واختار التبويبProjects اذا لم تجد مشروع الكنترول به قم بالبحث عنه من خلال browse واختار ملف clock.dll من داخل مشروعك (الكنترول ) واختار ok
ثم قم بعمل التالى
من قائمة tools اختار add/remove toolbox items واختار browse ثم قم باضافة clock.dll واختار ok وستجد ان الكنترول الجديد الخاص بك قد ظهر فى اخر ال toolbox قم بسحبه واضافته الى الform وستلاحظ انه يعمل خلال ال design time
قم بعرض نافذة الخصائص properties الخاصه بالكنترول وستلاحظ وجود الخاصيتان اللذان قمنا بعملهما فى هذه النافذه ويمكنك اختيار اللون من خلالهما
وبعد اختيار اللون قمبالضغط على ctrl+F5 وقل "بسم الله "وسيعمل البرنامج باذن الله
المثال موجود بالمرفقات ..ولنا عوده باذن الله
اين التفاعل؟؟؟؟!!!!!!!!!!!!!!!!!!!!!!!!! <_< <_< <_< :( :( :( :( :( :( :(
ماهو هى دي المشكله يا عبده :(
عارف والله يا ميزو ...بس ادينا بنعمل اللى علينا
المشكلة دى كادت تجعلنى احبط (رغم انى عمرى ما جالى اكتئاب..الا بسبب دى)..يعنى عندك حاجه زى نظم التشغيل...شوف لما قلنا عايزين نعمل نظام كام صفحة اتكتبت وكام زياره للموضوع وكام رد..وصفحات تخطت العشر صفحات وكله كلام فى كلام ...ولما اكتشفنا ان الحل الوحيد هو الدراسه المكثفه وقلنا يا جماعه هنبدأ بدراسة كتاب معين ...شوف كام واحد بص للموضوع وكام رد وكام واحد تابع الموضوع بس....شوف وقارن وانت تعرف احنا ليه فى الحال ده
السلام عليكم ورحمة الله وبركاته....
بداية أريد أن أشكركم على طرح هذا الموضوع المهم, وأحب أن أشارك معك ببعض الملاحظات
1 - أولاً نضع الخاصة Dock = Fill للعصر lblDisplay وذلك من أجل أن تبقى الساعة تظهر في منتصف العنصر
..
2 - RightToLeft = Yes وذلك حتى تكون اللغة التي تظهر بها الساعة عربية أي من اليمين إلى اليسار ...
الملف المرفق يحتوي على برنامج ساعة بسيط من برمجتي, ما رأيكم لو نحوله إلى UserControl ...
اشكرك يا اخ abdelwahed على هذا الجهد ولا تيأس فالصبر جميل .
If you have an apple and I have an apple and we exchange these apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
بارك الله فيك أخ عبد الواحد و لي ملحوظة واحدة حول الأداة :
كان من الأفضل ان ترث الاداة Label و تعمل عليها حتى تتحكم في حجم الأرقام و حجم الاداة على حسب الرسم الذي يرسمه المستعمل للأداة على الفورم
و السلام عليكم
تم تعديل هذه المشاركة بواسطة crazy-man في 16 سبتمبر 2005 في 06:38
اقتباساشكرك يا اخ abdelwahed على هذا الجهد ولا تيأس فالصبر جميل
جزاك الله خيراً...انا عمرى ما كنت يائس يا اخى والله بس الواحد نفسه يشوف المسلمسن دايماً عندهم ايجابيه فى كل حاجه ودايماً متقدمين على غيرهم
اقتباسبارك الله فيك أخ عبد الواحد و لي ملحوظة واحدة حول الأداة :كان من الأفضل ان ترث الاداة Label و تعمل عليها حتى تتحكم في حجم الأرقام و حجم الاداة على حسب الرسم الذي يرسمه المستعمل للأداة على الفورم
و السلام عليكم
جزاك الله كل الخير يا اخى ...بس لو تعرف انا اساساً...عايز اتكلم عن حاجات كتيييييير فى الكنترولز بس عايز الموضوع يظهر بطريقه تناسب من اول المبتدئين عشان هى دى الفائده الحقيقيه..فاحتارت اكتب ايه ...قلت اختار حاجه موثقه وانسقها بطريقه سهله ...والمقال اللى كتبته ده من ال MSDN ولسه ليه كماله....عايز اكتبها بس المشكله فى الوقت والله العظيم ما لاقى وقت خالص والدراسه كمان هتبدأ اهيه :(
يا ريت كل الناس تشوف البرنامج بتاع الاخ إسماعيل عنجريني البرنامج كويس جداً بس مشكلته مينفعش للمبتدئينعشان فيه كنترولز كويسه كتير وكمان شوية methods كويسه ...والله مجهود جميل منك يا اخ إسماعيل عنجريني....جزاك الله كل الخير ووفقك لما فيه كل الخير واعزك الله وتزوجت بكراً وانجبت جيشاً وحررت قدساً و.........(كفايه كده لحسن تذهق :lol: :lol: :lol: )واشهد الله انى اوجه هذه الدعوه خالصه... لكل اعضاء المنتدى واشهدكم جميعاً انى احبكم فى الله
بسم الله الرحمن الرحيم
الملف المرفق يحتوي على user control هو عبارة عن ساعة تتمتع بالمزايا التالية:
1 - تغيير لون عقرب الساعات.
2 - تغيير لون عقرب الدقائق.
3 - تغيير لون عقرب الثواني.
4 - تغيير لون أرقام الساعة.
5 - تغيير لون الساعة الرقمية.
6 - تغيير تغيير لون الخلفية.
7 - تحريك الساعة أثناء التنفيذ.
الخطوة القادمة إن شاء الله:
1 - إضافة منبه صوتي كل ربع ساعة.
أرجو أن لا تبخلوا علينا بأية ملاحظة من شأنها تطوير هذا العنصر...
كويس جداً يا شباب ...استمروا وربنا معاكم....انا هكمل ان شاء الله فى الموضوع ...بس شويه كده لما ارجع البيت ...اصل الدراسه بدأت بقى...كل سنه وانتوا طيبين :lol: :lol: :lol:
i suggest explaining already designed controls which can be found in many sites on the web
what is your opnions ,men?
i want to see more activity in that topic before opening a new one
i am waiting replies from all members...don't be lazy :lol: :lol: :lol:
you can do a good thing...but if we co-operate we can do a better thing
السلام على من اتبع الهدى ورحمة الله وبركاته
جزاكم الله خيرا
Name : Ahmed H. Alawady
Web Site : Alawady.info
Email : alawady_ahmed@hotmail.com
Tel : +2 012 345 6808
هذا الموضوع مغلق.