Построчный ввод данных в таблицу DataGridView

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

Ссылка для скачивания примера: Яндекс.Диск


Комментариев нет:

Отправить комментарий

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