سؤال

لقد صنعت هذا البرنامج الصغير أثناء القراءة رئيس أول ج#. أحاول الحصول على البرنامج للتوقف للمستخدم لتعيين عنصر التحكم NumericupDown لمستوى الصعوبة. هذا هو الرمز ...

namespace WACK
{
    public partial class Form1 : Form
    {
        public int level;
        Mole mole;
        Random random = new Random();

        public Form1()
        {
            InitializeComponent();

            mole = new Mole(random, new Mole.PopUp(MoleCallBack));
            MessageBox.Show("Select a Level");
            if (level == 1)
            {
                timer1.Interval = random.Next(500, 500);
            }
            if (level == 2)
            {
                timer1.Interval = random.Next(400, 400);
            }
            if (level == 3)
            {
                timer1.Interval = random.Next(300, 300);
            }
            timer1.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Stop();
            ToggleMole();
        }

        private void ToggleMole()
        {
            if (mole.Hidden == true)
                mole.Show();
            else
                mole.HideAgain();
            if (level == 1)
            {
                timer1.Interval = random.Next(500, 500);
            }
            if (level == 2)
            {
                timer1.Interval = random.Next(400, 400);
            }
            if (level == 3)
            {
                timer1.Interval = random.Next(300, 300);
            }
            timer1.Start();

        }

        private void MoleCallBack(int moleNumber, bool show)
        {
            if (moleNumber < 0)
            {
                timer1.Stop();
                return;
            }
            Button button;
            switch (moleNumber)
            {
                case 0: button = button1; break;
                case 1: button = button2; break;
                case 2: button = button3; break;
                case 3: button = button4; break;
                case 4: button = button5; break;
                case 5: button = button6; break;
                case 6: button = button7; break;
                case 7: button = button8; break;
                default: button = button9; break;
            }

            if (show == true)
            {
                button.Text = "Hit Me!";
                button.BackColor = Color.Red;
            }
            else
            {
                button.Text = "";
                button.BackColor = SystemColors.Control;
            }

            timer1.Interval = random.Next(500, 1000);
            timer1.Start();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            mole.Smacked(0);
        }

        private void numericUpDown1_ValueChanged(object sender, EventArgs e)
        {
            level = (int)numericUpDown1.Value;
        }

تم حذف ما تبقى من معالجات الأزرار لجعل ما بعد أقصر. كما أنني لم أقم بنشر فصل الخلد لأنني أعتقد أن النموذج هو المكان الذي يجب أن يذهب فيه بيان الإيقاف المؤقت. بالطبع يمكن أن أكون مخطئا.

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

المحلول

تطبيقات Windows غير مصممة لإيقاف انتظار إدخال المستخدم - هذا نموذج تطبيق وحدة التحكم.

هناك طريقة أفضل للتعامل مع هذا هو تعطيل (أو إخفاء) عناصر تحكم أخرى حتى يتم تعيين الصعوبة. شيء مثل: في البداية تظهر صعوبة في NumericupDown وزر بدء. بمجرد الضغط على زر البدء ، تمكين/إظهار عناصر التحكم المتبقية والبدء.

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