DataGridView Ошибка System.FormatException при написании символов / букв - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть следующий 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

Кстати, есть ли возможностьразрешить только запись номера в ячейку?или есть ли лучший вариант, чтобы решить эту ошибку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...