tgoop.com/CsharpWindowsForm/104
Last Update:
بسم الله الرحمن الرحيم
اليوم سوف نشرح الطريقة الأخرى من انشاء أداة تحكم خاصة بك
الطريقة التي شرحناها سابقاً كانت عنطريق الوراثة
الطريقة هذه ستكون عنطريق User Control
المثال الذي سيتم شرحه لموضوع اليوم
انشاء أداة شريط التقدم Progress Bar مع إضافة ميزة جديدة لهذه الأداة
وهي اظهار النسبة المئوية لشريط التقدم تابع معي .....
قم بانشاء مشروع بعد ان يتم فتح المشروع اذهب الى قائمة project و اختار
Add User Control
في واجهة تصميم User Control قم بإضافة
ProgressBar
Lable
بهذا الشكل:1
قم بإضافة الأدوات
ابدا ProgressBar
وقم بتعديل خصائصها أولا ومن ثم قم بإضافة lable واعمل الخصائص كما في الشكل
بعد ان تتم بإضافة الأدوات وتعديل خصائصهن
اضغط F7 للدخول الى الكود لبدء البرمجة
public int Value
{
get { return Bar.Value; }
set
{
Bar.Value = value;
UpdateLabel();
}
}
Bar هو اسم أداة التحكم ProgressBarالتي اضفناها وغيرنا اسمها الى Bar
نكتب الكود بشكل كامل
public int Value
{
get { return Bar.Value; }
set
{
Bar.Value = value;
UpdateLabel();
}
}
public int Maximum
{
get { return Bar.Maximum; }
set { Bar.Maximum = value; }
}
public int Step
{
get { return Bar.Step; }
set { Bar.Step = value; }
}
public void PerformStep()
{
Bar.PerformStep();
UpdateLabel();
}
private void UpdateLabel()
{
label1.Text = (Math.Round((decimal)(Bar.Value * 100) /
Bar.Maximum)).ToString();
label1.Text += "% Done";
}
توفر أداة التحكم المخصص الوصول الى ثلاث خصائص من أداة التحكم ProgressBar
(القيمة & الحد الأقصى & الخطوة ) ودالة تقوم بتنفيذ الخطوة (النسبة المئوية)
في كل مرة يتغير شريط التقدم (إما عن طريق تعديل الخاصية Value أو استدعاء
الدالة PerformStep ())
تقوم الخاصية او الدالة باستدعاء الدالة UpdateLabel ()
والتي
تغير النسبة المئوية لتعكس التقدم الحالي. هذا يضمن أن lable دائمًا
يظل متزامنًا تمامًا مع شريط التقدم
بعد الانتهاء من برمجة الأداة
اضغط Ctrl+Shift+B
لكي يتم بناء المشروع واضافة الأداة الجديدة الى ToolBox
الان ارجع الى واجهة التصميم Form1 واضف الأداة الخاصه بك من ToolBox
واضف هذه الأداة الى الفورم timer
قم بتعديل خصائص timer
Enabled = true
Interval = 1000
افتح حدث Tick للاداة Timer
واكتب الكود التالي
private void timer1_Tick(object sender, EventArgs e)
{
userControl11.PerformStep();
if (userControl11.Maximum == userControl11.Value)
{
timer1.Stop();
}
}
Run
BY برمجة تطبيقات الويندوز C# Programming
Share with your friend now:
tgoop.com/CsharpWindowsForm/104