VB.Net DataGridView будет принимать числовые значения только в режиме редактирования. - PullRequest
0 голосов
/ 09 января 2019

Одна конкретная ячейка в моем представлении данных принимает числовые значения только в режиме редактирования. То, что я хочу, это если они оставят ячейку пустой или 0, она автоматически изменится на значение 1.

Вот мой код ниже:

Private Sub dgvPrint_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles dgvPrint.EditingControlShowing
    Dim txtEdit As TextBox = e.Control

    RemoveHandler txtEdit.KeyPress, AddressOf CopiesText_KeyPress
    AddHandler txtEdit.KeyPress, AddressOf CopiesText_KeyPress
End Sub



Private Sub CopiesText_KeyPress(sender As Object, e As KeyPressEventArgs) Handles CopiesText.KeyPress

    If dgvPrint.CurrentCell.ColumnIndex = 5 Then
        If IsNumeric(e.KeyChar.ToString()) Or e.KeyChar = ChrW(Keys.Back) Then
            e.Handled = False
        Else
            e.Handled = True
            MessageBox.Show("Invalid input." & vbCrLf & "Please enter numeric value.", "Invalid", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        End If
    End If

End Sub

1 Ответ

0 голосов
/ 10 января 2019

Спасибо за ваши идеи, ребята. То, что я сделал, это

Private Sub dgvPrint_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles dgvPrint.CellEndEdit
    For X = 0 To dgvPrint.Rows.Count - 1
        If Val(dgvPrint.Rows(X).Cells("dgvcCopies").Value) = 0 Then
            dgvPrint.Rows(X).Cells("dgvcCopies").Value = 1
        End If
    Next
End Sub

Это работает, но я не знаю, правильный ли это код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...