سؤال

ولدي التسمية على شاشة البداية التي يتم عرضها لمدة 4 ثوان. واني اسعى الى جعل التسمية عرض عملية التحميل كنسبة مئوية. ومن الواضح أن هذا هو فقط لتظهر للمستخدم أن البرنامج بدأ فعليا وليس واقعيا "تحميل" أي شيء. هل هناك طريقة أستطيع أن لديها التسمية عرض النسبة المئوية (الانتقال من 1٪ إلى 100٪) في غضون 4 ثوان؟ خسر قليلا على كيفية القيام بذلك.

هل كانت مفيدة؟

المحلول

ضع عنصر تحكم مؤقت في النموذج، وتعيين الخاصية الفاصل الزمني ل40 و الخاصية Enabled به إلى true. إنشاء متغير مستوى النموذج مثل هذا:

private int _Progress = 0;

في الحدث التجزئة الموقت، ووضع هذا الرمز:

if (_Progress < 100)
{
    _Progress++;
    label1.Text = _Progress.ToString() + "%";
}
else
{
    timer1.Enabled = false;
}

والمدد الزمنية ليست دقيقة حقا لميلي ثانية واحدة، وبالتالي فإن هذا لا تأخذ بالضبط 4 ثوان، ولكنها سوف قيام بهذه المهمة.

نصائح أخرى

وعلى افتراض كنت تتحدث WinForms عناصر (لا WPF)، فإن أبسط طريقة يكون عنصر تحكم الموقت. تعيين مهلة لمدة 40 مللي ثانية (4 ثوان = 4000 مللي ثانية. 4000 مللي / 100 التحديثات = 40 مللي ثانية). إنشاء عدد صحيح على مستوى فئة لتتبع التقدم المحرز. ثم الشفرة لهذا الحدث OnTick أن ننظر بشيء من هذا القبيل ...

if(progress < 100)
{
  progress++;
  progessLabel.Text = String.Format("Loading...  Progress: {0}%", progress);
}
else
{
  timer.Enabled = false;
}

وجهاز توقيت مع نهاية الشوط المقرر أن أقول أن 100 مللي ثانية يكون النهج أبسط. الحفاظ على إحصاء عدد المرات التي يتم فيها استدعاء الحدث الموقت وتحديث شريط التقدم بنسبة 2.5 في المئة لكل منهما القراد.

ولئن كان هذا من شأنه أن أعمل، وأنا أقول أن شريط التقدم ليست مثالية لهذا الوضع. بدلا من مجرد رسم متحرك سيكون أفضل لأنه يعطي مؤشرا على أن البرنامج هو البدء، ولكن لا تضليل مثل علبة شريط التقدم.

وأعتقد أن مايكروسوفت تجعل بانتظام هذا خطأ استخدام أشرطة التقدم مضللة في بعض التطبيقات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top