У меня есть следующий DataGridview, который требует записи только целого числа, однако, если пользователи пишут какие-либо символы / буквы, эта ошибка выдается.Кстати, этот столбец загружается из базы данных, и значение всегда будет целым числом (поэтому все столбцы предназначены только для числа), поэтому я не знаю, как проверять числа, когда пользователи редактируют строки, и не отображать эту ошибку.
private void dataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Rows[e.RowIndex].Cells[5].Value != null)
{
if (dataGridView1.Rows[e.RowIndex].Cells[5].Value == System.DBNull.Value || dataGridView1.Rows[e.RowIndex].Cells[5].Value == null)//Check if cell is not nulll
{
dataGridView1.Rows[e.RowIndex].Cells[5].Style.BackColor = Color.White;
}
else
{
int numero;
string mimonto = string.Empty + this.dataGridView1.Rows[e.RowIndex].Cells[5].Value;
bool res = true;
for (int i = 0; i < mimonto.Length; i++)
{
if (char.IsNumber(mimonto[i]) == true)// if position is a number
{
}
else
{
res = false;//value is not a number
}
}
if (res == true)
{
dataGridView1.Rows[e.RowIndex].Cells[5].Style.BackColor = Color.White; //this is a number and color stays as white
}
else
{
dataGridView1.Rows[e.RowIndex].Cells[5].Style.BackColor = Color.Red;//color is red if it's not a number
dataGridView1.Rows[e.RowIndex].Cells[5].Value = 0;
MessageBox.Show("Debe ingresar valores númericos");
}
}
}
}
Это ошибка, когда символ / буква или что-либо, что не является числом.
![enter image description here](https://i.stack.imgur.com/ARZBA.png)
Кстати, есть ли возможностьразрешить только запись номера в ячейку?или есть ли лучший вариант, чтобы решить эту ошибку?