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
我有 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