Почему другие столбцы также не принимают алфавит в формате ячейки datagridview? - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть сетевое представление с 8 столбцами, и я хочу, чтобы индексы 5 и 6 принимали только числа, но, к сожалению, это также влияет на другие столбцы. что-то не так с этим кодом?

Private Sub GridJournal_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles GridJournal.EditingControlShowing
    If GridJournal.CurrentCell.ColumnIndex = 5 Then

        AddHandler CType(e.Control, TextBox).KeyPress, AddressOf TextBox_keyPress

    ElseIf GridJournal.CurrentCell.ColumnIndex = 6 Then

        AddHandler CType(e.Control, TextBox).KeyPress, AddressOf TextBox_keyPress

    End If

End Sub

Private Sub TextBox_keyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs)
    If Not (Char.IsDigit(e.KeyChar) Or e.KeyChar = "." Or Asc(e.KeyChar) = 8) Then
        e.Handled = True
    End If
End Sub

1 Ответ

0 голосов
/ 11 апреля 2019

вам просто нужно еще условие для удаления вашего обработчика.

   If GridJournal.CurrentCell.ColumnIndex = 5 Or GridJournal.CurrentCell.ColumnIndex = 6 Then
        RemoveHandler CType(e.Control, TextBox).KeyPress, AddressOf TextBox_keyPress
        AddHandler CType(e.Control, TextBox).KeyPress, AddressOf TextBox_keyPress
    Else
        RemoveHandler CType(e.Control, TextBox).KeyPress, AddressOf TextBox_keyPress
    End If
...