مشاركة عبر


خطوة 5: اضف معالجات أحداث دخول لعناصر تحكم ب NumericUpDown

قد يكون لديك ملاحظة شيء فردية حول كتابة الأرقام في NumericUpDown تحكم. لحل هذه المشكلة، قم بإضافة event handler.

لرؤية اداء تحكم الNumericUpDown

  1. تشغيل البرنامج وتبدأ اللعبة. يجب أن يكون مجموع التحكم NumericUpDown وامض صواب بها بجانب 0 (صفر).

  2. اكتب 3 و 30 يظهر . اكتب 5 و 350 تظهر ولكن بعد ثانية ، يتغير الى 100 .

    قبل إصلاح هذه المشكلة يجب التفكير في ما يحدث بها. خذ بعين الاعتبار لماذا لم تختفي 0 عند كتابة 3. خذ بعين الاعتبار سبب تغيير 350 صواب 100 ، و سبب كان هناك تأخيرًا قبل تغييره.

    ملاحظة

    على الرغم من أنه قد يبدو مثل سلوك فردي سوف يتم تفسيره. عند النقر فوق الزر ابدأ تم تعيين خصائص زر الخاصية قيمة False كما الزر يظهر بلون خافت ويكون غير متوفر. للتحكم بالبرنامج الخاص بك سوف يبحث عن عنصر التحكم مع أقل قيمة TabIndex — NumericUpDown — وتغيير التركيز إلى عنصر التحكم هذا. عند استخدام المفتاح TAB للانتقال إلى NumericUpDown صواب ، فإنه تلقائياً بوضع المؤشر عند البداية صواب ، وهو ما يؤدي للأرقام التي تكتبها إدخالها من اليسار ومن اليسار لا. عند إدخال رقم أعلى MaximumValue الخاصية الذي يتم تعيينه إلى "100" فإنه يستبدل رقم تم إدخاله صواب القيمة القصوى.

ادخل Event Handlers للتحكم ب NumericUpDown

  1. يمنع هذا السلوك الفردية وإجراء البرنامج المزيد من السهولة على استخدام ، صواب معالج حدث كل NumericUpDown التحكم الحدث Enter. استخدام الصفحة الأحداث في مربع الحوار خصائص صواب بإضافة معالج حدث Enter مجموع NumericUpDown التحكم تسمى answer_Enter .

    مربع حوار الخصائص

    مربع حوار الخصائص

    يجب أن تشبه التعليمة البرمجية المثال للتالى:

    Private Sub answer_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sum.Enter
    
        ' Select the whole answer in the NumericUpDown control.
        Dim answerBox As NumericUpDown = TryCast(sender, NumericUpDown)
    
        If answerBox IsNot Nothing Then
            Dim lengthOfAnswer As Integer = answerBox.Value.ToString().Length
            answerBox.Select(0, lengthOfAnswer)
        End If
    
    End Sub
    
    private void answer_Enter(object sender, EventArgs e)
    {
        // Select the whole answer in the NumericUpDown control.
        NumericUpDown answerBox = sender as NumericUpDown;
    
        if (answerBox != null)
        {
            int lengthOfAnswer = answerBox.Value.ToString().Length;
            answerBox.Select(0, lengthOfAnswer);
        }
    }
    

    على الرغم من أنه قد تبدو معقدة مبدئياً, أصبح أسهل إلى فهم إذا نظرت في ذلك خطوة بخطوة. أولاً، ابحث في الجزء العلوي من الأسلوب: object sender في C# أوsender As System.Object في صواب. هذا يعني أنه داخل أسلوب الخاص أي وقت يمكنك استخدام sender ، يشير صواب التحكم NumericUpDown إطلاق الحدث Enter الخاصة به. لذا، في السطر الأول من الأسلوب تحدد ليس فقط كائن ولكن بشكل خاص على NumericUpDown صواب. (كل NumericUpDown تتحكم بعبارة عن كائن ولكن ليس كل كائن NumericUpDown تتحكم.) يتحقق السطر التالي من ما إذا كان قد تم تحويل answerBox بنجاح (تحويل) من كائن صواب التحكم NumericUpDown. إذا فشل, فإنه تم القيمة خالية (C#) أو لا شيء (Visual Basic). السطر الثالث يبحث عن طول الإجابة المعروضة حالياً في NumericUpDown صواب. التحكم NumericUpDown بإعلام السطر الرابع صواب حدد الإجابة. الآن عندما يتنقل المستخدم في عنصر تحكم هذا بالالتقاط هذا الحدث الذي يتسبب تحديد الإجابة. بمجرد قيام المستخدم ببدء تشغيل الكتابة, الإجابات السابقة سوف يتم مسحها ويتم استبدال إجابات جديد.

  2. بعد معالج الحدث هذا في مكان الانتقال صواب Windows مصمم نماذج وحدد الفرق التحكم NumericUpDown. الانتقال إلى الصفحة الأحداث في مربع الحوار خصائص التمرير لأسفل إلى الحدث Enter وحدد معالج الأحداث الذي قمت بإضافته.

  3. قم بإجراء نفس quotient ومنتجات عناصر التحكم NumericUpDown.

  4. حفظ البرنامج وتشغيلها. السلوك الفردي يجب ان لا يظهر.

للمتابعة أو للمراجعة