Forum
Merhaba ;
Vb.net datagrdiview de benim istediğim bir hücreye sadece rakam ve virgül yazılsın istiyorum. Diğer hücrelerinde kısıtlama olmasın istiyorum fakat bir türlü çözemedim. Bu konuda yardımlarınızı bekliyorum.
Saygılarımla İyi Çalışmalar...
Bilgisi olan yok mu acaba...
Datagirdview CellValidating olayında girilen değeri kontrol edebilirsin. Eğer değer yanlışsa "e.cancel = true" ile girilen değeri iptal edebilirsin.
C# Örneği
DataGridViewTextBoxCell cell = dataGridView1[e.ColumnIndex, e.RowIndex] as DataGridViewTextBoxCell;
if (cell.EditedFormattedValue.ToString().Trim() != null)
{
double o;
if(!Double.TryParse(cell.EditedFormattedValue.ToString(),out o))
{
MessageBox.Show("Lütfen Sayısal Değer Giriniz !", "HATA");
e.Cancel = true;
}
}
Hakkı Bey ilginize çok teşekkür ederim. Aradığım buydu ama ben datagridview üzerinde örneğin 3 sütunda bu kontrol çalışsın diğer hücrelerde istediğimi yazabileyim istiyorum. bu kontrolü sadece istediğim cell de nasıl çalıştırabilirim. verdiğiniz kodu vb.net e convert ettim aşağıda. yardımlarınızı bekliyorum iyi çalışmalar şimdiden teşekkürler...
Dim cell As DataGridViewTextBoxCell = TryCast(DataGridView1(e.ColumnIndex, e.RowIndex), DataGridViewTextBoxCell)
If (cell.EditedFormattedValue.ToString().Trim() IsNot Nothing) Then
Dim o As Double
If Not [Double].TryParse(cell.EditedFormattedValue.ToString(), o) Then
MessageBox.Show("Lütfen Sayısal Değer Giriniz !", "HATA")
e.Cancel = True
End If
End If
Çözümü bilen varmı acaba. sadece kolon 2 ye rakam ve virgül yazılmasını istiyorum. Teşekkürlerrrr.
bunu IF ifadesiyele çözebilirsin.
Dim cell As DataGridViewTextBoxCell = TryCast(DataGridView1(e.ColumnIndex, e.RowIndex), DataGridViewTextBoxCell)
if(e.ColumnIndex = 2) Then
If (cell.EditedFormattedValue.ToString().Trim() IsNot Nothing) Then
Dim o As Double
If Not [Double].TryParse(cell.EditedFormattedValue.ToString(), o) Then
MessageBox.Show("Lütfen Sayısal Değer Giriniz !", "HATA")
e.Cancel = True
End If
End If
End If
Hocam çok teşekkür ederim. Çok işime yaradı. İyi Çalışmalar...