Pessoal, quero caminhar pelas células do meu DataGidView horizontalmente e ao chegar no fim da linha, inserir um nova linha abaixo já selecionando a primeira célula da nova linha. Fiz um código que acho que está equivocado, só que funciona, mas quero algo mais prático.
Alterei primeiramente as seguintes propriades do datagridview:
1ª) AllowUserToAddRows = false;
2ª) Multiselect = false;
3ª) SelectionMode = CellSelect;
4ª) EditMode = EditOnKeystrokeOrF2.
Como não permito o usuário inserir linhas automaticamente, então, no evento "Enter" do datagridview fiz o seguinte:
private void dgvTrftGridValores_Enter(object sender, EventArgs e)
{
if (dgvTrftGridValores.Rows.Count == 0)
dgvTrftGridValores.Rows.Add();
}
Após adicionada a primeira linha, por default, a primeira célula já é selecionada e a partir daí edito a célula. Assim que termino de edita-la, teclo enter e a partir do evento "CellEndEdit" do datagridview fiz o seguinte:
private void dgvTrftGridValores_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex + 1 < dgvTrftGridValores.Columns.Count)
{
dgvTrftGridValores.Rows[e.RowIndex].Cells[e.ColumnIndex + 1].Selected = true;
}
else
{
dgvTrftGridValores.Rows.Add();
dgvTrftGridValores.Rows[e.RowIndex + 1].Cells[1].Selected = true;
}
}
Logo, consigo caminhar horizontalmente e ao final adicionar uma linha abaixo e posicionar o seleção na primeira célula para começar tudo novamente. Existe algo mais prático?
Obrigado pela ajuda.