Validate a column in DataGridView

In this article author explain about Validate a column in DataGridView and example of code behind under Validate a column in DataGridView.

Prevent the user from entering data other than numbers to a DataGridView cell

'EditingControlShowing event. This event is fired when the user tries to edit the content of a cell:
Private Sub DataGridView1_EditingControlShowing( _
ByVal sender As Object, _
ByVal e As System.Windows.Forms. _
DataGridViewEditingControlShowingEventArgs) _
Handles DataGridView1.EditingControlShowing

'---restrict inputs on the Amount Field---
If Me.DataGridView1.CurrentCell.ColumnIndex = DataGridView1.Columns("Amount").Index And Not e.Control Is Nothing Then

Dim tb As TextBox = CType(e.Control, TextBox)

'---add an event handler to the TextBox control---
AddHandler tb.KeyPress, AddressOf TextBox_KeyPress
End If

End Sub

'KeyPress event handler to the TextBox control that you want to restrict.
'This KeyPress event handler will be invoked when the user types into the cell and it is defined as follows:
Private Sub TextBox_KeyPress( _
ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs)

'---if textbox is empty and user pressed a decimal char---
If CType(sender, TextBox).Text = String.Empty And _
e.KeyChar = Chr(46) Then
e.Handled = True
End If
'---if textbox already has a decimal point---
If CType(sender, TextBox).Text.Contains(Chr(46)) And _
e.KeyChar = Chr(46) Then
e.Handled = True
End If
'---if the key pressed is not a valid decimal number---
If (Not (Char.IsDigit(e.KeyChar) Or _
Char.IsControl(e.KeyChar) Or _
(e.KeyChar = Chr(46)))) Then
e.Handled = True
End If
End Sub


No responses found. Be the first to comment...

  • Do not include your name, "with regards" etc in the comment. Write detailed comment, relevant to the topic.
  • No HTML formatting and links to other web sites are allowed.
  • This is a strictly moderated site. Absolutely no spam allowed.
  • Name: