2014-01-15 3 views
2

DataGridview를 사용하는 vb.net windows 양식 응용 프로그램이 있습니다. 나는 사용자가 공백이나 빈 문자열을 입력하지 못하도록하고 잘못된 입력을 입력하는 것을 막을 방법을 찾고있다. 나는 실수를 설명하는 메시지를 보여줄 것이고, 그 후에는 기본값이 제공 될 것이다. 이것은 내가 지금까지 가지고 있고 완전히 빈 셀을 방지하지만 공백 (공백 문자열을 추가하기 위해 스페이스 바를 누르십시오)이 있으면 빈 입력임을 알지 못합니다. 유효한 문자를 발견하면DataGridview vb.net에서 공백을 방지하는 방법

당신의 문자열의 각 문자에 대한
If (columnindex = 0) Then 'checking value for column 1 only 
     Dim cellString = DataGridView1.Rows(rowindex).Cells(columnindex).value 
     If cellString Is Nothing OrElse IsDBNull(cellString) OrElse cellString.ToString = String.Empty Then 

      MessageBox.Show("Cannot Be Empty") 
      DataGridView1.Rows(rowindex).Cells(columnindex).value = "Default Value" 
      Exit Sub 
     End If 

답변

3

사용 From MSDN
다음 String.IsNullOrWhiteSpace 방법 datagridview.Rows(0).Cells(0).Value.ToString() 반환 값이 DBNull 인 경우 빈 문자열이므로이 값도 확인하지 않아도됩니다.

If (columnindex = 0) Then 'checking value for column 1 only 
    Dim cellString as String = DataGridView1.Rows(rowindex).Cells(columnindex).value.ToString() 
    If String.IsNullOrWhiteSpace(cellString) = True Then 

     MessageBox.Show("Cannot Be Empty") 
     DataGridView1.Rows(rowindex).Cells(columnindex).value = "Default Value" 
     Exit Sub 
    End If 
End If 
+0

고마워, 완벽하게 일했다! – stackexchange12

0

루프, 다음 문자열은

뭔가 같이 유효 :

Dim IsValid as Boolean=false 

For I = 0 to cellstring.length - 2 

    if Cellstring.substring(I,1) <> " " then IsValid = true 

Next 
+0

도움 주셔서 감사합니다. 그러나 루프 내 특정 사건에 대한 작동하지 않습니다, 내 datagridview 행 수천 있고 루프 꽤 느려질 것이다. – stackexchange12

+0

아마도 이것이 String.IsNullOrWhiteSpace보다 빠를 수도 있습니다. sice는 문자열에도 루프를 만들 것입니다. 루프를 작성하지 않는다고해서 문자열을 처리하지 않는다는 것을 의미하지는 않습니다. 성능이 앱에서 매우 중요한 경우 빠른 방법을 테스트해야합니다. 그 선은 좋다. 그리고 나는 그것이 존재했다는 것을 몰랐다. –

0

EditingControlShowing 이벤트를 사용하여 입력 상자에 KeyPress 함수를 등록 할 수 있습니다.

관련 문제