【发布时间】:2019-01-09 12:23:24
【问题描述】:
我的 datagridview 中的一个特定单元格将仅在编辑模式下接受数字。 我想要的是,如果他们将单元格留空或为 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
【问题讨论】:
-
也许对于焦点丢失事件,您可以进行与您已经做过的类似的检查,您将焦点丢失,检查其是否为第 5 列并查看单元格值是否为 = 0 或 = "" 然后为该单元格赋值 1
-
CellEndEdit似乎最有可能满足这一要求。
标签: vb.net datagridview