#vb.net
#vb.net
Вопрос:
Мой код выдает ошибку, когда я нажимаю кнопку обновить после внесения изменений в значение в ячейке. Я пытаюсь фиксировать идентификатор пользователя и дату всякий раз, когда происходит изменение значения ячейки в строке данных. Пожалуйста, посоветуйте.
Private Sub DataGridView4_CellValuechanged(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView4.CellValueChanged
Dim counter As Integer
UName = Environment.UserName
Dim now As DateTime
If e.ColumnIndex > 0 Then
For counter = 0 To (DataGridView4.Rows.Count - 1)
DataGridView4.Item(e.ColumnIndex, counter).Value = DataGridView4.Item(e.ColumnIndex, e.RowIndex).Value
DataGridView4.Item("Modifieddate", e.RowIndex).Value = Date.Now
DataGridView4.Item("ModifierID", e.RowIndex).Value = UName.ToString.ToUpper
Next
End If
End Sub
Комментарии:
1. Подскажите, в чем ошибка?
2. Вы понимаете, что вы изменяете значение каждой строки для столбца, который был изменен. Это ваше намерение?
3. Последние 2 строки внутри цикла не принадлежат циклу. Вы просто сбрасываете одно и то же значение снова и снова.
4. Ошибка: Необработанное исключение типа ‘System. В системе произошло исключение StackOverflowException’. Windows. Forms.dll . Я стремлюсь к тому, чтобы при изменении какого-либо значения ячейки в строке были сохранены идентификатор пользователя и дата.
5. И какая строка вызывает исключение?
Ответ №1:
Я не уверен, о чем If e.ColumnIndex > 0 Then
идет речь. Если это столбец, который вы не хотите, чтобы пользователь редактировал, то установите Column.ReadOnly = True
и избавьтесь от оператора If.
Если вы просто хотите записать дату и пользователя, который изменил ячейку в определенной строке.
Private Sub DataGridView4_CellValuechanged(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView4.CellValueChanged
If e.ColumnIndex > 0 Then
DataGridView4.Item("Modifieddate", e.RowIndex).Value = Date.Now
DataGridView4.Item("ModifierID", e.RowIndex).Value = Environment.UserName.ToUpper
End If
End Sub