2011-11-10 12 views
0

空であればセルを検証できますが、セルの長さを確認することはできません。ユーザーに5桁を入力し、5未満の場合はメッセージボックスを表示します。DataGridビューでセルの長さの値をチェックする方法は?

私は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 

答えて

1

動作しないためにあなたのコードを引き起こし<> 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 
+0

はい、それはうまくいった。 – user804437

-1

は、私はあなたが必要になると思います。

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

をあなたがチェックしている値が空ともそれは長さがされていている場合:以下の

cellval.text.length 
+0

-1: 'cellval'は' String'自体です。 –

+0

ああ申し訳ありませんが、それを正しく読んでいませんでした。 早いスタート、悪い:( –

関連する問題