Друзья, я использую элемент управления 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. Пожалуйста, помогите мне.
Надеюсь, вы знаете, что событие CellValidating
будет инициировано для каждой ячейки, поэтому, возможно, вы видите сообщение, так как оно может потерпеть неудачу для длинной части столбцов double
типа данных.
Поэтому вы должны поставить чек, чтобы проверить первый и второй столбцы соответственно, а затем выполнить проверки длины.
вы также можете использовать e.FormattedValue
для получения текущего значения в ячейке.
Также вы можете установить MaxInputLength
для столбца Textbox в свойствах тоже (в случае необходимости)
MaxInputLength
который вы можете установить на 10 или 100, как вам нужно