我的应用程序包含一个Datagridview,用户可以输入以下值:Day,Time,他工作了多少小时等等。问题是我的第二个应用程序使用这些数据计算。它必须采用某种格式。 就像时间应该是" 09:15",但我注意到有些用户正在使用" 09,15"代替。你可以帮助我吗,我需要一个代码,可以检查Datagridview中的Range是否包含一些"被列入黑名单的char"如果是,则用正确的替换它。 谢谢大家。
答案 0 :(得分:0)
在DataGridView
中,您有一个句柄可以检查已编辑的单元格的有效性:CellValueValidating
。在考虑用户更改(CellValueChanged
事件)之前调用它。
您可以在此处找到示例和说明: - https://msdn.microsoft.com/en-us/library/ykdxa0bc(v=vs.110).aspx - https://msdn.microsoft.com/en-us/library/7ehy30d4(v=vs.110).aspx
您还可以查看CellValueChanged
,CellValueValidated
和CellEndEdit
个事件。
答案 1 :(得分:0)
不要将值保存为字符串。
在所需类型中直接验证输入字符串
然后验证的值传递给第二个应用程序。
在这种情况下,您不需要“列入黑名单的字符”
Private Sub DataGridView_CellValidating(sender As Object,
e As DataGridViewCellValidatingEventArgs)
If e.RowIndex < 0 Then Exit sub
Dim dgv As DataGridView = DirectCast(sender, DataGridView)
Dim columnIndexWithInteger As Integer = 2
Dim columnIndexWithDate As Integer = 3
Select Case e.ColumnIndex
Case columnIndexWithInteger
Dim temp As Integer
If Integer.TryParse(e.FormattedValue, temp) = False Then
e.Cancel = True
End If
Case columnIndexWithDate
Dim temp As Date
If Date.TryParse(e.FormattedValue, temp) = False Then
e.Cancel = True
End If
End Select
End Sub