C# maskedtextbox sayı sınırlandırması nasıl yapılır?

AnarionV

Hectopat
Katılım
10 Haziran 2019
Mesajlar
74
Çözümler
1
Öncelikle merhabalar. Altta belirttiğim ekran görüntüsündeki düzene göre girilen sayıların sırasıyla 24-60-60 sayılarından büyük olursa butona tıklandığında hata veren kodu arıyorum. Kullandığım program Visual Studio ve C# dilinde yazıyorum.
(Alarm programı yapıyorum)

 
Butona tiklaninca calisan fonksiyonda degerlendirin bir for dongusunde hepsini.
 
C#:
private void maskedTextBox1_Validating_1(object sender, CancelEventArgs e) {
    // Stop when empty (avoiding the user getting "locked" in the box)
    if (maskedTextBox1.Text.Length == 0) return;

    // Validate text, cancel when not valid and show error to user
    if (maskedTextBox1.Text.Length < 4 || maskedTextBox1.Text.Length > 15) {
        e.Cancel = true;
        MessageBox.Show("Please enter a text of 4 - 15 characters length!");
    }
}

Alıntıdır.
 
C#:
private void button1_Click(object sender, EventArgs e)
        {
            string[] veri = maskedTextBox1.Text.Split(':');
            int saat = Convert.ToInt32(veri[0]);
            int dakika = Convert.ToInt32(veri[1]);
            int saniye = Convert.ToInt32(veri[2]);

            if (saat<=24 && dakika<=60 && saniye<=60)
            {
                MessageBox.Show("ok");
            }
            else
            {
                MessageBox.Show("hata");
            }
        }
 
Teşekkürler çalıştı.
Teşekkürler çalıştı.


Yanlış saat girince hata yakalama çalıştı fakat en aşağıdaki boş bırakınca hata verme komutu çalışmıyor.
Teşekkürler çalıştı.



Yanlış saat girince hata yakalama çalıştı fakat en aşağıdaki boş bırakınca hata verme komutu çalışmıyor.
Boş geçme uyarısını en üste alıp altına return; ekleyince sorun çözüldü.
 
Son düzenleme:
C#:
private void button1_Click(object sender, EventArgs e)
        {
            string[] veri = maskedTextBox1.Text.Split(':');
            int saat = 0, dakika = 0, saniye = 0;
            if (veri[0]!="" && veri[1]!="" && veri[2]!="")
            {
                saat = Convert.ToInt32(veri[0]);
                dakika = Convert.ToInt32(veri[1]);
                saniye = Convert.ToInt32(veri[2]);

                if (saat <= 24 && dakika <= 60 && saniye <= 60)
                {
                    MessageBox.Show("ok");
                }
                else
                {
                    MessageBox.Show("hata");
                }
            }
            else
            {
                MessageBox.Show("hata");
            }

        }
Böyle de deneyebilirsiniz.
 
Teşekkür ederim yardımınız için iyi geceler.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…