16,719
社区成员
发帖
与我相关
我的任务
分享 Public EditCell As DataGridViewTextBoxEditingControl
Private Sub DataGridView1_EditingControlShowing(sender As Object, e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
If Me.DataGridView1.CurrentCellAddress.X = 1 Then
EditCell = CType(e.Control, DataGridViewTextBoxEditingControl)
EditCell.SelectAll()
AddHandler EditCell.KeyPress, AddressOf Cells_KeyPress
End If
End Sub
Private Sub DataGridView2_EditingControlShowing(sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView2.EditingControlShowing
If Me.DataGridView2.CurrentCellAddress.X = 1 Then
EditCell = CType(e.Control, DataGridViewTextBoxEditingControl)
EditCell.SelectAll()
AddHandler EditCell.KeyPress, AddressOf Cells_KeyPress
End If
End Sub
Private Sub DataGridView3_EditingControlShowing(sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView3.EditingControlShowing
If Me.DataGridView3.CurrentCellAddress.X = 1 Then
EditCell = CType(e.Control, DataGridViewTextBoxEditingControl)
EditCell.SelectAll()
AddHandler EditCell.KeyPress, AddressOf Cells_KeyPress
End If
End Sub
Private Sub DataGridView4_EditingControlShowing(sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView4.EditingControlShowing
If Me.DataGridView4.CurrentCellAddress.X = 1 Then
EditCell = CType(e.Control, DataGridViewTextBoxEditingControl)
EditCell.SelectAll()
AddHandler EditCell.KeyPress, AddressOf Cells_KeyPress
End If
End Sub
Private Sub DataGridView5_EditingControlShowing(sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView5.EditingControlShowing
If Me.DataGridView5.CurrentCellAddress.X = 1 Then
EditCell = CType(e.Control, DataGridViewTextBoxEditingControl)
EditCell.SelectAll()
AddHandler EditCell.KeyPress, AddressOf Cells_KeyPress
End If
End Sub
Private Sub Cells_KeyPress(sender As System.Object, e As KeyPressEventArgs)
If e.KeyChar <> Chr(8) And e.KeyChar <> Chr(13) And (e.KeyChar < Chr(48) Or e.KeyChar > Chr(57)) Then
Beep()
Beep()
e.KeyChar = Chr(0)
End If
End Sub
,最近一直在忙工作,好久没有上CSDN了,承蒙看得太高,今天收到你的私信才上来光顾一下。估计你这也是网上借用的代码,活用一下,加个焦点列的判断标志flag就行。 Public EditCell As DataGridViewTextBoxEditingControl
Private Flag As Boolean '焦点是否在第二列的判断标志
Private Sub DataGridView1_EditingControlShowing(sender As Object, e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
If Me.DataGridView1.CurrentCellAddress.X = 1 Then
EditCell = CType(e.Control, DataGridViewTextBoxEditingControl)
EditCell.SelectAll()
AddHandler EditCell.KeyPress, AddressOf Cells_KeyPress
Flag = True
Else
Flag = False
End If
End Sub
Private Sub Cells_KeyPress(sender As System.Object, e As KeyPressEventArgs)
If Flag = True Then
If e.KeyChar <> Chr(8) And e.KeyChar <> Chr(13) And (e.KeyChar < Chr(48) Or e.KeyChar > Chr(57)) Then
Beep()
Beep()
e.KeyChar = Chr(0)
End If
End If
End Sub