Я хотел бы изменить значение ячейки, которое пользователь вводит там, и делать обрезку раньше, чтобы избежать левого и правого пробелов над значением до того, как оно будет проверено. В настоящее время это мой код без этой функции:Изменение значения ячейки datagriview на CellValidating
Private Sub Grid_CellValidating(sender As Object, e As DataGridViewCellValidatingEventArgs) Handles Grid.CellValidating
Dim newValue = e.FormattedValue.ToString
If Not Grid.Rows(e.RowIndex).IsNewRow Then 'And Not e.RowIndex = Grid.NewRowIndex - 1 Then
Select Case e.ColumnIndex
Case 1 'Name
If String.IsNullOrEmpty(newValue) Then
e.Cancel = True
Exit Select
End If
Case Else
End Select
End If
End Sub
То, что я пытался сделать, таким образом, но это совершенно не работает:
Private Sub Grid_CellValidating(sender As Object, e As DataGridViewCellValidatingEventArgs) Handles Grid.CellValidating
Dim newValue = e.FormattedValue.ToString.Trim '<---trim added
'change value of cell without trims
Dim aaa As DataGridViewCell = CType(sender, DataGridView).Rows(e.RowIndex).Cells(e.ColumnIndex)
aaa.Value = newValue
If Not Grid.Rows(e.RowIndex).IsNewRow Then 'And Not e.RowIndex = Grid.NewRowIndex - 1 Then
Select Case e.ColumnIndex
Case 1 'Name
If String.IsNullOrEmpty(newValue) Then
e.Cancel = True
Exit Select
End If
Case Else
End Select
End If
End Sub
'но он полностью не работает' - в котором он не работает? Какие побочные эффекты вы получили во время отладки вашего кода шаг за шагом? Какое значение имеет 'e.FormattedValue.ToString' до и после Trim? –
@Alex B. до того, как он дал правильное значение, и после подрезания он делает это правильно - обрезка. Это верно. Теперь я не знаю, как сохранить это значение aftertrimming в ячейку. –
Как @jmcilhinney написал код триммера в обработчик события CellValidated и оставить значение IsNullOrEmpty в обработчике событий CellValidating. –