如何在datagrid视图中检查单元格的长度值?

时间:2011-11-10 07:44:36

标签: vb.net winforms

我能够验证细胞是否为空,但我无法检查细胞的长度。我希望用户输入5位数,如果小于5位,则显示一个消息框。

我尝试了cellvalue.length方法,但它不起作用。

Private Sub dgvResults_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles dgvResults.CellValidating
        'variables
        Dim columnName As String = dgvResults.Columns(e.ColumnIndex).Name
        Dim cellVal As String = e.FormattedValue.ToString()

        'Datagrid view validation
        If ((e.ColumnIndex = 0) And (e.FormattedValue = "") And (Not (cellVal.Length = 5))) Then
            e.Cancel = True
            MessageBox.Show(columnName & " must be 5 Digits Long!")
        ElseIf (e.ColumnIndex = 1 And e.FormattedValue = "") Then
            e.Cancel = True
            MessageBox.Show(columnName & " cannot be blank!")
        ElseIf (e.ColumnIndex = 2 And e.FormattedValue = "") Then
            e.Cancel = True
            MessageBox.Show(columnName & " cannot be blank!")
        ElseIf ((e.ColumnIndex = 3) And (e.FormattedValue = "") And (Not IsNumeric(e.FormattedValue))) Then
            e.Cancel = True
            MessageBox.Show(columnName & " cannot be blank!")
        ElseIf ((e.ColumnIndex = 4) And (Not IsNumeric(e.FormattedValue))) Then
            e.Cancel = True
            MessageBox.Show(columnName & " cannot be blank!")
        End If

    End Sub

2 个答案:

答案 0 :(得分:1)

以下导致您的代码无效:

(e.FormattedValue = "") And (Not (cellVal.Length = 5))

您正在检查该值是否为空它的长度是<> 5.

但是你想确保cellVal.Length = 5:

If e.ColumnIndex = 0 AndAlso cellVal.Length <> 5 Then
        e.Cancel = True
        MessageBox.Show(columnName & " must be 5 Digits Long!")
End If

答案 1 :(得分:-1)

我想你需要:

cellval.text.length