Form sayfalarında Textbox kutusu değişik amaçlarla kullanıcıdan bilgi almak için kullanılır. Girilen bilgiler herhangi bir kontrol yapılmamışsa alfasayısaldır. Programcı kendi isteğine göre bu değeri dönüştürebilir. Bu uygulamamızda form sayfasında yer alan Textbox kutusuna sadece sayı girilmesini sağlayacağız. Tamsayı girilmesini istediğim için 0 ile 9 arasında sayı girilmesini sağlayalım.
Bu işlemi geröekleştirmenin birden fazla yolu vardır. Şimdi bunları görelim.
1. Keypress olayına aşağıdaki kodları yazalım.
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
int tus = e.KeyChar;
if (tus < 48 || tus > 57)
{
e.Handled = true;
}
}
2. TextChanged olayına aşağıdaki kodları yazalım.
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (Regex.IsMatch(textBox1.Text, "[^0-9]"))
{
textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1);
textBox1.SelectionStart = textBox1.Text.Length;
textBox1.SelectionLength = 0;
}
}
3. Validating olayına aşağıdaki kodları yazınız.
private void textBox1_Validating(object sender, CancelEventArgs e)
{
int cikti = 0;
bool isNumber = false;
isNumber = int.TryParse(textBox1.Text, out cikti);
if (!isNumber)
{
e.Cancel = true;
textBox1.Text = "";
}
}
4. Keydown ve Keypress olaylarına aşağıdaki kodları yazalım.
private bool dogrumu = false;
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
dogrumu = false;
if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
{
if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
{
if (e.KeyCode != Keys.Back)
{
dogrumu = true;
}
}
}
if (Control.ModifierKeys == Keys.Shift)
{
dogrumu = true;
}
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (dogrumu == true)
{
e.Handled = true;
}
}