Как изменить код, приведенный ниже, чтобы принять Удалить и BackSpace Ключи также ??DataGridView событие Чтобы цифры, Backspace и Delete Keys только VB.Net
Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
Select Case DataGridView1.CurrentCell.ColumnIndex
Case Is = 0, 1
AddHandler CType(e.Control, TextBox).KeyPress, AddressOf TextBox_keyPress
End Select
End Sub
Private Sub TextBox_keyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs)
If Not (Char.IsDigit(CChar(CStr(e.KeyChar))) Or e.KeyChar = ".") Then
e.Handled = True
End If
End Sub
Текущий код После модификации - не работает
Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
Select Case DataGridView1.CurrentCell.ColumnIndex
Case Is = 0, 1
AddHandler CType(e.Control, TextBox).KeyPress, AddressOf TextBox_keyDown
End Select
End Sub
Private Sub TextBox_keyDown(ByVal sender As Object, ByVal e As KeyPressEventArgs)
If Not (Char.IsDigit(CChar(CStr(e.KeyChar))) Or e.KeyChar = ".") Then
e.Handled = True
End If
End Sub
EDIT - 2 Код
Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
Select Case DataGridView1.CurrentCell.ColumnIndex
Case Is = 0, 1
AddHandler CType(e.Control, TextBox).KeyPress, AddressOf TextBox_keyDown
End Select
End Sub
Private Sub TextBox_keyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
If Not (Char.IsDigit(CChar(CStr(e.KeyValue))) Or e.KeyValue = ".") Then
e.Handled = True
End If
End Sub
Теперь получаю ошибки в TextBox_keyDown Слово это линия ...
AddressOf TextBox_keyDown
Текст ошибки
Тяжесть Код Описание проекта Строка файла Подавление Государство Ошибка BC31143 Method 'Private Sub TextBox_keyDown (отправитель As Object, д Как KeyEventArgs)' не имеет подписи, совместимые с делегатом 'Делегат Sub KeyPressEventHandler (отправитель как объект, e As KeyPressEventArgs)'.
Вы не можете сделать это, используя событие «KeyPress». вам нужно событие KeyDown. –
Я изменил его в обоих местах как KeyDown, но он не позволяет мне удалять данные dgv. Я что-то пропустил? – Sixthsense
опубликуйте свой текущий код и объясните, что означает 'not allow'. –