По умолчанию, когда вы нажимаете клавишу ввода в элементе управления DataGridView, курсор перемещается на ячейку в том же столбце непосредственно под текущей ячейкой. Но при вводе нескольких строк данных и нескольких колонок, лучшим результатом от клавиши ввода было бы, перемещение курсора на следующий столбец в строке и по окончанию заполнения всей строки переход на первую ячейку новой строки.
Для реализации данной задачи, создайте событие KeyUp для элемента управления DataGridView и вставьте в него приведенный ниже код:
Для реализации данной задачи, создайте событие KeyUp для элемента управления DataGridView и вставьте в него приведенный ниже код:
int cell = 0; if (e.KeyCode == Keys.Enter) { int currentRow = dataGridView1.CurrentRow.Index; if (currentRow >= 0) { //Получаем индекс столбца для данной ячейки int currentcell = dataGridView1.CurrentCell.ColumnIndex; //Получаем общее количество столбцов int countcell = dataGridView1.ColumnCount; cell = currentcell + 1; //Если текущий столбец равен //их общему количеству то делаем переход на новую строку if (cell == countcell) { //Задаем первую ячейку, которая будет активной //при переходе на новую строку dataGridView1.CurrentCell = dataGridView1.Rows[currentRow].Cells[0]; } else { //Задаем следующую ячейку в строке, //которая будет активна при нажатии на клавишу Enter dataGridView1.CurrentCell = dataGridView1.Rows[currentRow-1].Cells[cell]; } } } base.OnKeyUp(e);
Ссылка для скачивания примера: Яндекс.Диск
Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!