По умолчанию, когда вы нажимаете клавишу ввода в элементе управления 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);Ссылка для скачивания примера: Яндекс.Диск



Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!