none
DataGridView - Caminhando pelas células horizontalmente RRS feed

  • Pergunta

  • 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.
    quinta-feira, 4 de março de 2010 18:05

Respostas

  • Olá Zé Eduardo,

    Li o seu código e está quase totalmente coerente, só não entendi uma coisa:

    Se o usuário estiver no grid... clicar fora... ele vai ter que selecionar uma linha e apertar entender para adicionar uma nova linha?

    não parece muito funcional...

    não seria legal ter um botão também que adicione uma nova linha ou algo do tipo?

    Att
    Gustavo
    sexta-feira, 5 de março de 2010 19:35

Todas as Respostas

  • Olá Zé Eduardo,

    Li o seu código e está quase totalmente coerente, só não entendi uma coisa:

    Se o usuário estiver no grid... clicar fora... ele vai ter que selecionar uma linha e apertar entender para adicionar uma nova linha?

    não parece muito funcional...

    não seria legal ter um botão também que adicione uma nova linha ou algo do tipo?

    Att
    Gustavo
    sexta-feira, 5 de março de 2010 19:35
  • Sim Gustavo valeu pela dica! Acabei de colocar os botões para inserir e remover a linha também! Obrigado!

    Att
    José Eduardo
    terça-feira, 9 de março de 2010 01:02