2016-04-28 1 views
1

У меня есть DataGridView VB.NET, который требует ввода пользователем для заполнения Null Columns. У меня есть это функционирование. Я хочу, чтобы столбец date_time заполнялся текущей датой/временем, когда другие столбцы не являются NULL. Цель состоит в том, чтобы иметь точное время, связанное с тем, когда были заполнены другие ячейки.VB.NET автоматически заполняет ячейку столбца DataGridView с помощью DateTime.Now

Я ожидаю, что смогу использовать таймер и следить за тем, чтобы ячейки не были пустыми, и активировать добавленную дату/время, но я не уверен, как закодировать популяцию даты/времени в ячейке.

Может ли кто-нибудь дать мне толчок в правильном направлении?

Благодаря

ответ

0

Это должно дать вам хороший старт:

Dim dateTimColumnIndex As Integer = 1 '(example number on my part) 
Private Sub CellValueChanged(ByVal sender As Object, _ 
    ByVal e As DataGridViewCellEventArgs) _ 
    Handles DataGridView1.CellValueChanged 
     If (e.ColumnIndex <> dateTimColumnIndex) Then 
      For z As Integer = 0 To DataGridView1.ColumnCount -1 
       If DataGridView1.Item(z, e.RowIndex).Value Is Nothing Then 
        Return 
       End If 
       DataGridView1.Rows(e.RowIndex).Cells(dateTimColumnIndex).Value = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") 
      Next 
     End if 

End Sub 

Обновлено не будет ничего делать, пока вы не измените значение allDoneLoading на True

Dim allDoneLoading As Boolean = False 
Dim dateTimColumnIndex As Integer = 1 '(example number on my part) 
Private Sub CellValueChanged(ByVal sender As Object, _ 
    ByVal e As DataGridViewCellEventArgs) _ 
    Handles DataGridView1.CellValueChanged 
    If allDoneLoading = True Then 
     If (e.ColumnIndex <> dateTimColumnIndex) Then 
      For z As Integer = 0 To DataGridView1.ColumnCount - 1 
       If DataGridView1.Item(z, e.RowIndex).Value Is Nothing Then 
        Return 
       End If 
       DataGridView1.Rows(e.RowIndex).Cells(dateTimColumnIndex).Value = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") 
      Next 
     End If 
    End If 
End Sub 
+0

Клавдия, я получаю ошибка при выполнении «аргумент из диапазона». Если вы работаете с коллекцией, убедитесь, что индекс меньше размера коллекции. Остановится на этой строке ... Если ProductionDownTimeTableDataGridView.Item (z, e.RowIndex). Значение ничего не значит ... – sds5150

+0

исправлено забыл, что индекс столбцов равен нулю на основе – Claudius

+0

Пожалуйста, извините мое невежество, но у меня все еще есть проблемы с этим , Ошибка, которую я получаю, - «Дополнительная информация: индекс был за пределами допустимого диапазона. Должен быть неотрицательным и меньше размера коллекции». Это последняя часть моего проекта, и я думаю, что она готова к судебному разбирательству. Спасибо за помощь. – sds5150