1 Previous Next 

DataGridView Caputere the characters from a cell input.


IronRazerz from the forums has shown this code. If the cells in your 6th column are TextBox types then you can do it like this using a DataGridViewTextBoxEditingControl. You will notice if you look at the DataGridViewTextBoxEditingControl events that it has a KeyDown event too if you need that instead.
Public Class Form1
    Private WithEvents EditControl As DataGridViewTextBoxEditingControl
    'this event is raised when a cell enters the editing mode
    Private Sub DGV_EditingControlShowing(ByVal sender As ObjectByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgsHandles DataGridView1.EditingControlShowing
        'here you are just checking if the Edit Control is Nothing and that the current cell is in the 6th column
        If EditControl Is Nothing AndAlso DataGridView1.CurrentCell.ColumnIndex = 5 Then
            'this casts the EditControl to the current cell`s edit control. This way you can access its events (TextChanged, KeyDown, or whatever)
            EditControl = DirectCast(e.Control, DataGridViewTextBoxEditingControl)
        End If
    End Sub
    'this is the EditControl`s Leave event where you will set it to Nothing. Otherwise you will catch keys even if you edit another cell.
    Private Sub EditControl_Leave(sender As Object, e As EventArgsHandles EditControl.Leave
        EditControl = Nothing
    End Sub
    Private Sub EditControl_TextChanged(ByVal sender As ObjectByVal e As System.EventArgsHandles EditControl.TextChanged
        'cast the sender Object to a DataGridViewTextBoxEditingControl so that you can access the text of the cell that is in the editing mode
        Dim ec As DataGridViewTextBoxEditingControl = DirectCast(sender, DataGridViewTextBoxEditingControl)
        Label1.Text = ec.Text 'you will see the label change as the selected cell text is changing
    End Sub
End Class



1 Previous Next