验证数字数据输入时控制数据网格视图的逗号输入

时间:2019-02-12 14:47:51

标签: vb.net validation input

我有一个数据网格视图,在这里我必须将输入限制为其中一列的数字输入(整数和小数位)。用户正在将值直接输入到数据网格视图。总共有2列,其中一列是只读的。我现在有以下代码:

Private Sub dgv1_CellEndEdit(By Val sender As System.Object, ByVal e As System.Windows.Form.DataGridViewCellEventArgs) Handles dgv1.CellEndEdit

    If (e.ColumnIndex =1) Then 'This is the column where I want to restrict input
       If dgv1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value <> Nothing Then
            Dim value As String = dgv1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString()
            If Not Information.IsNumeric(value) Then
                MessageBox.Show("Invalid entry.")
                dgv1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = String.Empty
                Exit Sub
            End If
        End If
     End If

End Sub

我遇到的问题是,如果我输入3,3或4,2(其中,在数字之间或之后),则不会将其视为无效输入,并且没有错误。但是,可以识别相同格式的任何其他特殊字符+或-或@并显示错误消息。为什么此代码无法识别出它是无效的,我如何包括该检查?谢谢。

1 个答案:

答案 0 :(得分:0)

在欧洲,逗号用于将单位与十分之一分开,例如英语使用点(在欧洲为10.3 =十而十分之三= 10,3),因此VB将其识别为有效数字。我会将您的条件更改为以下内容:

If (Not Information.IsNumeric(value)) OrElse value.Contains(",") Then