225 个问题
尝试添加此代码,当 DataGridView 处于 EditMode 模式时,它可以按 Enter 键来获取满足您要求的响应。
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
If keyData = Keys.Enter Then
If DataGridView1.CurrentCell.ColumnIndex < DataGridView1.ColumnCount - 1 Then
DataGridView1.CurrentCell =
DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells(DataGridView1.CurrentCell.ColumnIndex + 1)
Return True
Else
Try
DataGridView1.CurrentCell = DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex + 1).Cells(0)
Return True
Catch ex As ArgumentOutOfRangeException
Return True
End Try
End If
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
更新: 如果要在 datagridview 中间添加一个空白行以添加数据。可以使用 DataTable.NewRow 方法。
获取 CellClick 事件中的当前行数,并将空白行添加到下一行。
同时,为了防止添加过多的空白行,我还对当前数据表添加了一个验证。如果已有空行,则无法继续添加新的空行。
Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
Dim i As Integer = dt.AsEnumerable().Where(Function(row) IsDBNull(row("ID")) OrElse IsDBNull(row("Name")) OrElse IsDBNull(row("Score"))).Count()
If i = 0 Then
Dim newRow As DataRow = dt.NewRow()
dt.Rows.InsertAt(newRow, e.RowIndex + 1)
End If
End Sub
事实上,我觉得如果你在datagridview中添加一个新的按钮列,那么在单击按钮时添加新行可能会更容易。
如果回复有帮助,请点击“接受答案”并点赞。 注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。