Я использовал функцию DataGridView в форме, имеющей 4 столбца: Код товара, Описание, Количество, Цена. Я хочу, когда код элемента вставляется в ячейку, фокус должен перемещаться по третьей ячейке той же строки, что и третий столбец (количество). До сих пор он работал отлично, потому что я ссылался на эту ссылку.DataGridView SetFocus не перемещается в следующую строку
DataGridView SetFocus after CellEndEdit
Теперь проблема в том, что он застрял на 3-й камере, он не движется к следующей строке первого столбца (Код товара), когда я нажимаю войти. Мой код
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. Эта линия взаимодействует с нормальным потоком фокуса между элементами управления. Используйте простую консоль Convert.WriteLine, чтобы наблюдать за resul в окне отладки. – Steve
Я удалил эту строку, но все же она не работает. Когда первый фокус фокуса перемещается в 3-я ячейка (т.е. количество), и я вставляю какое-то значение и HIT вводят так, что ничего не происходит, и фокус остается в одной и той же ячейке, но когда я HIT вводят второй раз, он переходит к следующей строке 3-го столбца (т.е. количество) –