VB.NET 多个数据网格视图的一次点击或按键事件

VB.NET one click or key event for multiple datagridviews

我有 4 个数据网格视图,比如说 Dgv1、Dgv2、Dgv3、Dgv4

假设我想用向上和向下箭头键上下移动行。

有没有办法为所有数据网格视图一次性编写代码?

目前我必须像这样编码 4 次:

Private Sub Dgv1_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Dgv1.KeyUp
    If e.KeyCode = Keys.Up OR e.KeyCode = Keys.Down OR e.KeyCode = Keys.PageUp Or e.KeyCode = Keys.PageDown Then
        Dim crRowIndex As Integer = Dgv1.CurrentCell.RowIndex
        Value = Dgv1.Rows(crRowIndex).Cells(4).Value.ToString
        ' Do more stuff
    End If
End Sub

这四次。所有数据网格视图都从不同的 sql 表中获取不同的数据,但功能是相同的。尽管我需要其他数据网格视图中的不同单元格。

尝试将其更改为:

Private Sub Dgv1_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Dgv1.KeyUp, dgv2.keyup, dgv3.keyup, dgv4.keyup
If e.KeyCode = Keys.Up OR e.KeyCode = Keys.Down OR e.KeyCode = Keys.PageUp Or e.KeyCode = Keys.PageDown Then
    Dim dgv as DataGridView = DirectCast(sender, DataGridView)
    Dim crRowIndex As Integer = dgv.CurrentCell.RowIndex
    Value = dgv.Rows(crRowIndex).Cells(4).Value.ToString
    ' Do more stuff
End If
End Sub

基本上你只是添加到 Handles 列表,然后使用 sender 获取正在处理的特定 datagridview