Можно ли проверить длину значения ячейки в datagridview при вводе?

1

Друзья, я использую элемент управления datagridview в своем приложении windows visual studio 2005. Здесь у меня 5 столбцов. Среди этих 5, 2-й (colIndex 1) и 3-й (colIndex 2) столбцы имеют тип текстовых данных, а 4-й (colIndex 3) и 5-й (colIndex 4) имеют столбец с двойным типом данных. Теперь я должен проверить длину значения ячейки для colIndex 1 и 2, превышает ли введенная длина значения конкретное значение (10 для colIndex 1 и 100 для colIndex 2)? Если это так, я должен показать соответствующее сообщение. Можете ли вы предложить, в каком событии datagridview я должен проверить введенное/введенное значение ячейки и как проверить значение? Я использовал следующий код в событии CellValidating

    string columnName = dgView.Columns[e.ColumnIndex].Name;

        if (dgView.Rows[e.RowIndex].Cells[dgViewColumn.TAN].Value.ToString().Length > 10)
        {
            e.Cancel = true;
            MessageBox.Show(columnName + " must be 10 Digits Long!");
        }

Но он показывает columnName следующего столбца. И поскольку у меня есть функция для сетки, нажатие клавиши "Enter" переместит фокус на следующую ячейку, показывая, что "Операция не удалась, потому что программа не может зафиксировать или закрыть изменение значения ячейки". в событии CellValidating. Пожалуйста, помогите мне.

Теги:
winforms
datagridview
maxlength

1 ответ

3
Лучший ответ

Надеюсь, вы знаете, что событие CellValidating будет инициировано для каждой ячейки, поэтому, возможно, вы видите сообщение, так как оно может потерпеть неудачу для длинной части столбцов double типа данных.

Поэтому вы должны поставить чек, чтобы проверить первый и второй столбцы соответственно, а затем выполнить проверки длины.

вы также можете использовать e.FormattedValue для получения текущего значения в ячейке.

Также вы можете установить MaxInputLength для столбца Textbox в свойствах тоже (в случае необходимости)

  • 0
    Сетка не является связанным типом. Это сетка типа записи. Как мне установить MaxLength?
  • 0
    хорошо, если вы посмотрите в свойствах столбца textbox (в дизайнере), вы увидите MaxInputLength который вы можете установить на 10 или 100, как вам нужно
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню