Aracılığıyla paylaş


Talimat: WinForms matematik testi uygulamasını özelleştirme

Dört öğreticiden oluşan bu seride bir matematik testi oluşturacaksınız. Test, bir sınava girişenin belirli bir süre içinde yanıtlamaya çalıştığı dört rastgele matematik sorunu içerir.

Bu öğreticide, varsayılan değerleri temizleyerek ve denetimlerin görünümünü özelleştirerek testinizi nasıl iyileştirdiğiniz gösterilir.

Bu son öğreticide şunların nasıl yapılacağını öğreneceksiniz:

  • Varsayılan NumericUpDown denetim değerlerini temizlemek için olay işleyicileri ekleyin.
  • Testi özelleştirin.

Önkoşullar

Bu öğretici, Matematik testi oluşturma WinForms uygulamasıile başlayarak önceki öğreticileri temel alır. Bu öğreticileri tamamlamadıysanız, önce bunları inceleyin.

NumericUpDown denetimleri için olay işleyicileri ekleme

Test, sınava girenlerin sayı girmek için kullandığı NumericUpDown denetimler içerir. Bir yanıt girdiğinizde, önce varsayılan değeri seçmeniz veya bu değeri el ile silmeniz gerekir. Enter olay işleyicisi ekleyerek yanıtları girmeyi kolaylaştırabilirsiniz. Bu kod, sınav katılımcısı NumericUpDown denetimini seçer ve farklı bir değer girmeye başlar başlamaz, her denetimdeki geçerli değeri seçer ve temizler.

  1. Formdaki ilk NumericUpDown denetimini seçin. Özellikler iletişim kutusunda, araç çubuğundaki Olaylar simgesini seçin.

    Özellikler iletişim kutusunun araç çubuğunu gösteren ekran görüntüsü. Şimşek içeren bir simge çağrılır.

    ÖzellikleriOlaylar sekmesi, formda seçtiğiniz öğe için yanıtlayabileceğiniz tüm olayları görüntüler. Bu durumda, listelenen tüm olaylar NumericUpDown denetimiyle ilgili olur.

  2. Enter olayını seçin, answer_Entergirin ve Enterseçin.

    Enter olayının seçili olduğu Özellikler iletişim kutusunu gösteren ekran görüntüsü. Yöntem kutusu answer_Enter içerir.

    Kod düzenleyicisi görüntülenir ve NumericUpDown denetimi toplamı için oluşturduğunuz Enter olay işleyicisini görüntüler.

  3. answer_Enter olay işleyicisi yöntemine aşağıdaki kodu ekleyin:

    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);
        }
    }
    

Bu kodda:

  • İlk satır yöntemini bildirir. senderadlı bir parametre içerir. C# dilinde parametresi object sender. Visual Basic'te sender As System.Object. Bu parametre, olayı tetikleyen ve gönderen olarak bilinen nesneye işaret eder. Bu durumda, gönderen nesnesi NumericUpDown denetimidir.
  • Yöntemin içindeki ilk satır, göndericiyi genel bir nesneden NumericUpDown kontrolüne dönüştürür. Bu satır ayrıca NumericUpDown denetimine answerBox adını atar. Formdaki tüm NumericUpDown denetimleri yalnızca ekleme sorununun denetimini değil bu yöntemi kullanır.
  • Sonraki satır, answerBox'nin NumericUpDown kontrolü olarak başarıyla dönüştürülüp dönüştürülmediğini doğrular.
  • if deyiminin içindeki ilk satır, şu anda NumericUpDown denetiminde olan yanıtın uzunluğunu belirler.
  • if deyiminin içindeki ikinci satır, denetimdeki geçerli değeri seçmek için yanıt uzunluğunu kullanır.

Test çözücü denetimi seçtiğinde, Visual Studio bu olayı başlatır. Bu kod geçerli yanıtı seçer. Sınava giren farklı bir yanıt girmeye başlar başlamaz, geçerli yanıt temizlenir ve yerine yeni yanıt gelir.

  1. Windows Forms Designerbölümünde toplama sorununun NumericUpDown denetimini yeniden seçin.

  2. Özellikleri iletişim kutusunun Olaylar sayfasında, 'a tıklayın olayını bulun ve açılan menüden answer_Enter seçin. Bu, az önce eklediğiniz olay işleyicisidir.

  3. Windows Forms Designerbölümünde, çıkarma işlemi için kullanılan NumericUpDown denetimini seçin.

  4. Olaylar sayfasında, Özellikler iletişim kutusunda, Enter olayını bulun ve ardından açılan menüden answer_Enter seçin. Bu, az önce eklediğiniz olay işleyicisidir. Bu adımı Tıklama olayı için yineleyin.

  5. Çarpma ve bölme NumericUpDown denetimleri için önceki iki adımı yineleyin.

Uygulamanızı çalıştırma

  1. Programınızı kaydedin ve çalıştırın.

  2. Bir test başlatın ve bir NumericUpDown denetimi seçin. Mevcut değer otomatik olarak seçilir ve farklı bir değer girmeye başladığınızda temizlenir.

    Dört rastgele matematik sorunu olan test uygulamasını gösteren ekran görüntüsü. İlk sorunun varsayılan yanıtı seçilidir.

Testinizi özelleştirme

Öğreticinin bu son bölümünde testi özelleştirmenin ve öğrendiklerini genişletmenin bazı yollarını keşfedeceksiniz.

Etiketin rengini değiştirme

  • Testte yalnızca beş saniye kaldığında bu etiketi kırmızıya çevirmek için timeLabel denetiminin BackColor özelliğini kullanın.

    timeLabel.BackColor = Color.Red;
    
  • Test bittiğinde rengi sıfırlayın.

Doğru yanıt için bir ses çal

NumericUpDown kontrolüne doğru yanıt girildiğinde bir ses çalarak quiz katılımcısına ipucu verin. Bu işlevi uygulamak için her denetimin ValueChanged olayı için bir olay işleyicisi yazın. Bu tür bir olay, sınav çözücüsü kontrolün değerini değiştirdiğinde tetiklenir.

Sonraki adımlar

Tebrikler! Bu eğitim kılavuzunu tamamladınız. Visual Studio IDE'de şu programlama ve tasarım görevlerini tamamladınız:

  • Windows Forms kullanan bir Visual Studio projesi oluşturuldu
  • Etiketler, düğme ve NumericUpDown denetimleri eklendi
  • Zamanlayıcı eklendi
  • Denetimleriniz için olay işleyicileri ayarlama
  • Olayları işlemek için yazılmış C# veya Visual Basic kodu

Başka bir eğitim serisiyle eşleştirme oyunu oluşturmayı öğrenmeye devam edin.