【发布时间】:2016-01-02 20:57:22
【问题描述】:
我在一个有 4 列的表单中使用了 DataGridView 功能:项目代码、描述、数量、价格。我希望在将项目代码插入单元格时,焦点应该移到同一行的第三个单元格上,即第三列(数量)。直到这里它工作正常,因为我提到了这个链接。
DataGridView SetFocus after CellEndEdit
现在的问题是它卡在第三个单元格上,当我按下回车键时它没有移动到下一行第一列(项目代码)。我的代码是
Private flag_cell_edited As Boolean
Private currentRow As Integer
Private currentColumn As Integer
Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
flag_cell_edited = True
currentColumn = e.ColumnIndex
currentRow = e.RowIndex
MsgBox(DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value)
End Sub
Private Sub DataGridView1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.SelectionChanged
If flag_cell_edited Then
DataGridView1.CurrentCell = DataGridView1.Rows(currentRow).Cells(2)
flag_cell_edited = False
End If
End Sub
我已经使用MsgBox查看插入单元格的数据,以便以后可以将其存储到数据库中。
【问题讨论】:
-
开始删除那个 MsgBox。这条线会干扰控件之间的正常焦点流动。使用简单的 Console.WriteLine 在调试窗口中观察结果。
-
我删除了该行,但仍然无法正常工作。当第一次焦点移动到第三个单元格(即数量)并且我插入一些值并且 HIT 进入所以没有任何反应并且焦点保持在同一个单元格中但是当我第二次进入时它移动到下一行第 3 列(即数量)
标签: vb.net datagridview