tgoop.com/CsharpWindowsForm/256
Last Update:
بسم الله الرحمن الرحيم
شرح أداة التحكم Timer
أداة التحكم المؤقت (timer)
تقوم بإنشاء حدث بعد فاصل زمني محدد ، مع خيار إنشاء أحداث متكررة.
اي ان هذه الأداة مهمتها تنفيذ عمليه خلال مدة محددة او بعد كل فاصل زمني محدد .
هذه الأداة تقوم برفع حدث في التطبيق الخاص بك بعد انقضاء عدد المللي ثانية في خاصية الفاصل الزمني (Interval)
نشرح بالاكواد كي توضح الفكرة اكثر عن هذه الأداة.
هذه الأداة من الأدوات التي هي non visual أي غير مرئية في الفورم وتظهر اسفل الفورم .
يمكنك اضافتها للفورم من قائمة أدوات التحكم او برمجياً
الخصائص المهمه التابعة لهذه الأداة
الخاصية Enabled : هي المسئوله عن تفعيل الأداة او عدم تفعيلها قيمتها الافتراضيه هي false أي انك عندما تقوم بسحب الأداة للفورم تكون غير مفعله لو تقوم بعمل أي شي في الحدث Tick فإنه لن يحدث شي والسبب ان الخاصية Enabled تساوي false ولكي يعمل الحدث قم بجعل قيمه الخاصية الى true
الخاصية Interval
هذه الخاصية تأخذ قيمه من نوع int
من خلالها نحدد متى يحدث الحدث
فمثلاً اذا قمت بعمل قيمه للخاصيه كالتالي
timer1.Interval = 3000;
فهذا يعني سوف يتم تشغيل الحدث Tick بعد كل 3 ثواني
أي ان الف مللي ثانية يساوي ثانية واحدة
اذا اردت تنفيذ عمليه بالثواني كل ما عليك هو ان
ثانية * 1000
أي انك تضع عدد الثواني في المعادلة السابقة وتضربه في 1000
اما اذا اردت بالدقائق تكتب عدد الدقائق وتضربها في 60 في 1000
دقيقة * 60 * 1000
لكي تقوم بعمليه بعد 3 دقائق كل ماعليك فعله هو كالتالي
timer1.Interval = 3*60*1000;
الحدث Tick
الحدث تيك وهو الحدث الذي سوف يتم تنفيذ العمليه بداخله بعد مرور المدة الزمنية المحددة في الخاصية Interval.
هل تلاحظ الى مايدل اسم الحدث وكإن هو يشبه صوت عداد الثواني في ساعة الحائط .
الان سوف نشرح اكواد تمكنك من عمل أشياء جميله ورائعة في برنامجك من خلال هذه الأداة البسيطة
المثال الأول يقوم بتغيير لون الشاشة تلقائياً بعد مرور 3 ثواني في الحدث Tick
الكود:
private void timer1_Tick(object sender, EventArgs e)
{
Random rand = new Random();
Color randC = Color.FromArgb(rand.Next(256), rand.Next(256), rand.Next(256));
BackColor = randC;
}
المثال الثاني يقوم بتبديل الوان 2 ازرار الزر الأول لونه احمر والزر الثاني لونه اخضر سوف نقوم بتبديل الالون في ما بينهم كل ثانية .
الكود :
private void timer1_Tick(object sender, EventArgs e)
{
Button btn = new Button();
btn.BackColor = button1.BackColor;
button1.BackColor = button2.BackColor;
button2.BackColor = btn.BackColor;
}
مع العلم انهو تم تغيير قيمه الخاصية Interval الى 1000 (ثانية).
ملاحظة : كل ما كانت قيمة Interval اقل من ثانية تكون الأداة Timer سريعه .
بمعنى انك اذا عملت 100 للخاصية Interval فانها تعتبر 100 مللي ثاني أي جزء من الثانية.
المثال الثالث سوف نقوم بعمل قائمة منسدله تخرج من الجهه اليسرى
عندما يتم الضغط على زر القائمة .
لكي تقوم بتطبيق المثال هذا قم بإضافة الأدوات التاليه للفورم :
Panel1 خاصية Dock تساوي Top الون Orange
Panel2 خاصية Dock تساوي Left الون SteelBlue
Button ضعة في الجهه اليسرى للحاوية panel1 واسمه البرمجي btnMenu
Timer خاصية Enabled تساوي true و خاصية Interval تساوي 100
الان القائمة التي ستخرج من الجهه اليسرى هي panel2 قم بإضافة اليها بعص الازرار
التصميم النهائي سيبدو بشكل التالي :
اخر خطوة في التصميم قم بتعديل الخاصية Width التابعه Panel2 الى 0
كما في الشكل التالي
سوف تختفي القائمة بما تحتويه من ازرار لايهم سوف نقوم بإظهارها وإخفائها برمجيا.
الان بعد ان انتهينا من التصميم نبدأ بالبرمجة
سوف ندخل لاحداث الزر ونفتح دالة الحدث Click بعد ذلك نفتح الحدث Tick التابع لل Timer
الكود :
bool showMenu;
private void btnMenu_Click(object sender, EventArgs e)
{
if (panel2.Visible)
{
showMenu = false;
timer1.Start();
}
else
{
showMenu = true;
panel2.Show();
timer1.Start();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
if (showMenu)
{
if (panel2.Width >= 155)
timer1.Stop();
panel2.Width += 14;
BY برمجة تطبيقات الويندوز C# Programming
Share with your friend now:
tgoop.com/CsharpWindowsForm/256