//1.假设在DataGridView中己有两列,列标题为 X坐标 , Y坐标
// CellValidating()事件下面的代码用于检验这两列必须输入数字类型字符,否则出错. IsNumber() 函数为自定义的,
//用于判断字符串是否为数字类型,此函数还可以用其它方法来实现.也可以改变IsNumber()函数来验证输入内容
//不能为空或者只能输入大写或小写......
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (dGVCoordinate.Columns[e.ColumnIndex].Name == "X坐标" || dGVCoordinate.Columns[e.ColumnIndex].Name == "Y坐标")
{
if (isNumber(e.FormattedValue.ToString())==false)
{
dGVCoordinate.Rows[e.RowIndex].ErrorText = "X坐标只能为数字类型!";
e.Cancel = true;
}
}
if (dGVCoordinate.Columns[e.ColumnIndex].Name == "Y坐标")
{
if (isNumber(e.FormattedValue.ToString()) == false)
{
dGVCoordinate.Rows[e.RowIndex].ErrorText = "Y坐标只能为数字类型!";
e.Cancel = true;
}
}
}
//IsNumber() 函数为自定义的,用于判断字符串是否为数字类型,此函数还可以用其它方法来实现.
private bool isNumber(string s)
{
int Flag = 0;
char[] str = s.ToCharArray();
for (int i = 0; i < str.Length; i++)
{
if (Char.IsNumber(str[i]))
{
Flag++;
}
else
{
Flag = -1;
break;
}
}
if (Flag > 0)
{
return true;
}
else
{
return false;
}
}
//CellEndEdit()事件下代码用到清除错误消息
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
dGVCoordinate.Rows[e.RowIndex].ErrorText = String.Empty;
}