以下代码使DataGridView
Column4
仅接受数字值和一个小数点.
,并且可以正常工作,例如接受(4.50,3.00,13.60)
但是问题是:我仍然可以自己在单元格中保存一个小数点(没有任何数字,只有小数点),并且我不希望该单元格只有小数点,因为sql数据库(money列)不只接受小数点。
谁知道如何防止Column4
中的单元格不只接受小数点,而是接受类似(4.50,3.00,13.60)的值?
请帮忙谢谢
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyPress -= new KeyPressEventHandler(AnyColumnKeyPress);
if (dataGridView1.CurrentCell.ColumnIndex == 4 ) //Desired Column
{
TextBox tb = e.Control as TextBox;
if (tb != null)
{
tb.KeyPress += new KeyPressEventHandler(AnyColumnKeyPress);
}
}
}
private void AnyColumnKeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != '.')
{
e.Handled = true;
}
// allow 1 dot:
if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
{
e.Handled = true;
}
}
最佳答案
将功能更改为:
private void AnyColumnKeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != '.')
{
e.Handled = true;
}
// allow 1 dot:
if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
{
if ( (sender as TextBox).Text != "." ) {
e.Handled = true;
}
}
}
关于c# - 如何使某些datagridview列仅接受C#中的数值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35341869/