C# ile textbox'a saat girişi

Textbox'ın textchange event'ine aşağıdaki kodu yazdığınızda saat girişlerinizde : eklenir ve saat,dakika, saniye sınırlarının aşılmasını engeller. C# ile yazılmış bu kod VS 2005 ile denenmiştir. Bir ara lazım olmuştu o zaman yazmıştım. Arada aklıma geldikçe küçük kod parçaları paylaşacağım. Sizde sorularınızı iletişim bölümünden bana ulaştırabilirsiniz.

 int i=0;

          ++i;
            char[] ayrac ={ ':' };
            string[] strarray = textBox1.Text.Split(ayrac);
            try
            {
                switch (i)
                {
                    case 1:

                        break;
                    case 2:
                        textBox1.Text += ":";
                        textBox1.SelectionStart = 3;
                        if (Convert.ToInt32(strarray[0]) >= 24)
                        {
                            textBox1.Text = "";
                            i = 0;
                        }

                        break;
                    case 4:
                        break;
                    case 5:
                        textBox1.Text += ":";
                        textBox1.SelectionStart = 6;
                        if (Convert.ToInt32(strarray[1]) >= 60)
                        {
                            textBox1.Text = "";
                            i = 0;
                        }
                        break;
                    case 7:
                        break;
                    case 8:
                        break;
                    case 9:

                        i = 0;
                        textBox1.Text = "";
                        if (Convert.ToInt32(strarray[2]) >= 60)
                        {
                            textBox1.Text = "";
                            i = 0;
                        }
                        break;
                    default:
                        break;
                }
            }
            catch
            {
                textBox1.Text = "";
                i = 0;
            }

Döküman Güncellemesi: 02.02.2010

Kodun saniye kısmında hata yapılmış. Yorumu yazan arkadaşa teşekkür ederim. Yeni Kod açıklaması ile birlikte aşağıdadır. VS 2008 ile de test edilmiştir. 

    public partial class Form1 : Form
    {
        int i = 0;
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

            ++i;
            char[] ayrac = { ':' };
            string[] strarray = textBox1.Text.Split(ayrac);
            try
            {
                switch (i)
                {
                    case 1:

                        break;
                    case 2:
                        textBox1.Text += ":";
                        textBox1.SelectionStart = 3;
                        if (Convert.ToInt32(strarray[0]) >= 24)
                        {
                            textBox1.Text = "";
                            i = 0;
                        }

                        break;
                    case 4:
                        break;
                    case 5:
                        textBox1.Text += ":";
                        textBox1.SelectionStart = 6;
                        if (Convert.ToInt32(strarray[1]) >= 60)
                        {
                            textBox1.Text = "";
                            i = 0;
                        }
                        break;
                    case 7:
                        break;
                    case 8: 
                        if (Convert.ToInt32(strarray[2]) >= 60)
                        {
                            textBox1.Text = "";
                            i = 0;
                        }
                        break;
                       
                    case 9:
                        textBox1.Text = "";
                        i = 0;
                        break;
                    
                    default:
                        break;
                }
            }
            catch
            {
                textBox1.Text = "";
                i = 0;
            }

        }
    }

Görüldüğü gibi saat, dakika ve saniye zaman dilimleri dışına çıkarsa textbox silinecektir. Zaman dilimi tam girildikten sonra ekstradan giriş yapılmaya çalışırsa'da textbox silinecektir.

Yorumlar (3) -

  • Güzel çalışma. Ellerine sağlık. Peki Textboxa şimdi saat ve dakika bilgisini nasıl yazdırabiliriz, saniye görünmeyecek.
  • Zamanında gözümden kaçmış gerekli güncellemeyi yaptım. İlgili ekran çıktısını ve yenilenmiş kod dökümanın güncel hali olarak eklenmiştir. enjoy it Smile

Yorum ekle