2011-11-10 6 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' 자체가'문자열'입니다. –

+0

아, 죄송합니다. 제대로 읽지 못했습니다. 조기 시작, 불행 : ( –

관련 문제