Путаница в отношении DataGridView CellValidation - PullRequest
1 голос
/ 11 февраля 2020

Я не уверен, правильно ли я понимаю, как работает проверка ячеек, но я не получаю ожидаемого эффекта от своего кода. Ячейка не может быть проверена, если ввод не является допустимым Double, но текст ошибки не появляется, пока я не нажму escape, что возвращает ячейку к предыдущему значению. Я хочу, чтобы текст ошибки отображался при вводе неверного ввода, иначе это сбивает с толку ...

РЕДАКТИРОВАТЬ: Я хочу, чтобы текст ошибки отображался во время редактирования ячейки, возможно ли это?

private void coordDGV_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
        {
            double result;
            if (e.ColumnIndex >= 3)
            {
                if (!Double.TryParse(coordDGV.Rows[e.RowIndex].Cells[e.ColumnIndex].EditedFormattedValue.ToString(), out result))
                {
                    e.Cancel = true;
                    coordDGV.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = "Needs to be positive or negative decimal";
                }
                else
                {
                    coordDGV.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = "";
                }
            }

        }    

1 Ответ

2 голосов
/ 11 февраля 2020

Я нашел этот пост, который в основном охватывал мой вопрос.

Мне было интересно, почему

this.datagridviewX.Rows[e.RowIndex].ErrorText = "Errortext";

не появился, но я понял, что это потому, что значок ошибки отображается в заголовке строки, а заголовки строк отключены! К сожалению, значки ошибок не могут быть в заголовках столбцов, поэтому я неохотно включил заголовок строки, и он все решил хорошо!

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