• 0

ماهي طريقة إنشاء عدّاد في C# ؟

ماهي طريقة إنشاء عدّاد يتم تحديد قميته عبر المستخدم مع شريط تقدم (كما الموجود في الصورة المرفقة) يتغير حسب قيمة العداد؟

2.PNG

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

لإنشاء عدّاد يجب عليك اتباع الخطوات التالية :
• من صندوق الأدوات أنشئ عنصر Button وعنصر  TextBox وعنصر Label.
• من صندوق الأدوات قم بإنشاء Timer واضبط من خصائصه الـ Interval للقيمة 1000.
• انقر نقرتين على العنصر Timer لتوليد الطريقة المُعالجة لحدث Tick.
• في الطريقة المعالجة لحدث Tick اكتب الأوامر الخاصّة بالعداد وشريط التقدم وهي:

int first_time = int.Parse(textBox1.Text); // تخزين الوقت الكلي للعداد
int percentage; // متحول لتخزين النسبة المئوية للعداد
if (time > 0)
{
    label1.Text = "Remained : " + time; // طباعة الوقت المتبقي من العداد
    percentage = time * 100 / first_time; // معادلة تحسب النسبة المئوية للوقت المتبقي
    progressBar1.Value = percentage; // تعديل قيمة شريط المعالجة إلى النسبة المئوية للوقت المتبقي
    time -= 1; // إنقاص عداد الوقت ثانية
}
else if (time == 0)
{
    timer1.Stop(); // إيقاف العداد
    progressBar1.Value = 0;
    label1.Text = "Finished";
    MessageBox.Show("انتهى العدّاد");
}
else
{
    timer1.Stop();
    MessageBox.Show("يرجى إدخال قيمة رقميّة موجبة");
}


• ضمن الطريقة المُعالجة لحدث النقر على زر بدء العداد اكتب الأوامرالتالية :

time = int.Parse(textBox1.Text);
timer1.Start(); // بدء العداد


• قم بتعريف متحول عام ضمن الصف لقيمة العداد :

int time;

 

ليصبح كامل الكود هو :

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();
        }

        int time;

        private void button1_Click(object sender, EventArgs e)
        {
            time = int.Parse(textBox1.Text);
            timer1.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            int first_time = int.Parse(textBox1.Text);
            int avg;
            if (time > 0)
            {
                label1.Text = "Remained : " + time;
                avg = time * 100 / first_time;
                progressBar1.Value = avg;
                time -= 1;
            }
            else if (time == 0)
            {
                timer1.Stop();
                progressBar1.Value = 0;
                label1.Text = "Finished";
                MessageBox.Show("انتهى العدّاد");
            }
            else
            {
                timer1.Stop();
                MessageBox.Show("يرجى إدخال قيمة رقميّة موجبة");
            }
        }
    }
}

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن