2013-04-29 2 views
0

나는 다음과 같은 코드를 사용하여 내 DataGridView를 채울 :된 DataGridView 셀 길이

Private Sub FormatGridView() 
    Dim ILNumColumn As New DataGridViewTextBoxColumn 
    Dim ArtNumColumn As New DataGridViewTextBoxColumn 
    Dim DescColumn As New DataGridViewTextBoxColumn 

    'Header text 
    ILNumColumn.HeaderText = "# IL" 
    ArtNumColumn.HeaderText = "# Articles" 
    DescColumn.HeaderText = "Description" 

    'Wrap 
    DescColumn.DefaultCellStyle.WrapMode = DataGridViewTriState.True 

    'Widths 
    ILNumColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells 
    ArtNumColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells 
    DescColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill 

    'Add columns 
    dgvArticles.Columns.Add(ILNumColumn) 
    dgvArticles.Columns.Add(ArtNumColumn) 
    dgvArticles.Columns.Add(DescColumn) 
End Sub 

나는 그것의 세포에는 3 개 이상의 숫자를 받아 들일하기 위해 ILNumColumn를 원한다.

나는 다음과 같은 코드를 시도

: 그것은 작동하지 않습니다

ILNumColumn.MaxInputLength = 3 

, 나는 아직도 "9999"를 쓸 수는 ... 그 코드는 I가 "999"일단 입력에서 저를 멈추지해야 ? 나는 다양한 datagridview 이벤트를 사용하여 그것을 할 수 있지만 datagridview에 열을 추가 할 때 그렇게 할 수 있는지 궁금하네요.

그래서이 CellValidating 이벤트를 사용 나는 MaxInputLength에 대한 대안을 찾을 수 없습니다, 당신에게

답변

0

음을 감사드립니다.

Private Sub dgvArticles_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles dgvArticles.CellValidating 
    'Ensures only numeric values are entered in these fields 
    If e.ColumnIndex = 0 Then 
     If e.FormattedValue <> "" And (e.FormattedValue < 0 Or e.FormattedValue >= 1000) Then 
      MsgBox("IL # must be greater than 0 and less than 1000") 
      e.Cancel = True 
     End If 
    End If 
End Sub 
+0

'e.FormattedValue' 문자열로 작업하는 유사한 방법이 있습니까? – nbadaud