0
我在數據綁定datagridview
中有一列,其數據類型爲datetime
,該數據只顯示時間。如果用戶輸入時間,則單元格的日期和時間將在.CellValueChanged
事件中設置,並且日期來自另一列。 如果用戶以正確的格式輸入時間,它會按預期工作。Datagridview Dataerror在日期時間列中未捕獲用戶輸入
所以如果用戶輸入「8:00」,這會被正確解析爲一個時間。日期和時間已更新,單元格顯示「8:00」
如果用戶輸入8,則會觸發事件dataerror
。
我想獲取用戶輸入並將其轉換爲時間。但是在下面的示例中,變量numberinput
是NULL
,而不是用戶輸入的內容。
我可以捕獲用戶輸入的內容嗎?
Private Sub DataGridView1_DataError(sender As Object, e As DataGridViewDataErrorEventArgs) Handles DataGridView1.DataError
'handle incorrect date formats
e.ThrowException = False
Dim numberinput As Single
numberinput = Val(DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value)
Select Case True
Case Val(numberinput) = 0
DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = DBNull.Value
Case numberinput = Int(numberinput)
DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = RelevantDate.AddHours(numberinput)
End Select
e.Cancel = False
End Sub
谷歌如何覆蓋DGV列。您需要爲您的網格創建自定義列,以便在提交給數據源之前可以接受任何數據並對其進行解析。這就是所有你需要做的就是重寫數據輸入文本框的解析到任何你喜歡使用'timespan'的例子,例如 –