C# DataGridView de Belirli Kolonlarda Sadece Sayı ve Virgül Girme

Ahmet Veysel
2 min readMay 4, 2020

--

Merhaba arkadaşlar bu yazımızda DataGridView içerisinde belirli sütunlarda veri giriş kontrolü ile sadece sayı ve virgül girme işlemi gerçekleştireceğiz. Bu nerede işimize yarayacak derseniz eğer, örneğin bir satış otomasyonunda birim fiyatı bilinen bir ürün satışında adetini değiştirdiğinizde otomatik toplam tutarın değişmesini isteyeceğiz ve bu durumda adet kolonuna harf girilmesi durumunda program hata verecektir. Bu durum bu ve bu gibi durumlarda işimize çok yarayacaktır.

Öncelikle DataGridView imizin event kısmından EditingControlShowing eventine aşağıdaki kodları yazıyoruz.

Örnek Kodumuzda Index değerleri 3 ve 4 olan (Sıralama Bakımından 4 ve 5. kolonlar) kolonlara uyguladık.

if (dataGridView1.CurrentCell.ColumnIndex == 3 || dataGridView1.CurrentCell.ColumnIndex == 4 ) 
{
TextBox tb = e.Control as TextBox;
if (tb != null)
{
tb.KeyPress += new KeyPressEventHandler(Column_KeyPress);
}
}

Yukarıdaki kodda; if içerisindeki koşul hangi kolonlara sadece sayı ve virgül kontrolü olacağıdır. || (veya) operatörü ile bu kolon sayısını arttırabilirsiniz.

Daha sonra form içerisinde Column_KeyPress metodu açıyoruz. Aşağıdaki kodları kopyala yapıştır yapabilirsiniz.

private void Column_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != ',')
{
e.Handled = true;
}
if (e.KeyChar == ',' && (sender as TextBox).Text.IndexOf(',') > -1)
{
e.Handled = true;
}
}

Medium’da takipte kalın. Sorularınız olursa soruları “paste.ubuntu” üzerinden kodu yazarak linki yorum yapmayı unutmayın…

İyi Kodlamalar…

GitHub: avdisx

--

--