none
C# setas do teclado nao funcionam no dgv? o que fazer? RRS feed

  • Pergunta

  • Pessoal tenho um txtbox que uso para efetuar a pesquisa, quando o dgv é carregado, gostaria de usar as setas do teclado para poder percorrer as linhas, como faço isso?
    quinta-feira, 13 de outubro de 2016 01:16

Respostas

Todas as Respostas

  • Olá Tiago,

    Por padrão a datagridView já aceita navegação pelas setas do teclado, basta deixar o foco em uma linha ou célula, fora isso você consegue navegar pelas linhas/células. Não está se comportando dessa maneira aí?


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    quinta-feira, 13 de outubro de 2016 11:02
  • xiiii o meu nao esta padronizado entao, rsrsrs

    Andre de acordo com o que o grid vai sendo preenchido, o foco permanece no txtbox :S

    tentei usar:

     if (dgvProdutos.Rows.Count > 0)
                {
                    dgvProdutos.Rows[1].Selected = this.Focus();
                  
                }

    nem assim deu certo com as teclas.

    quinta-feira, 13 de outubro de 2016 11:35
  • Se você clicar em uma célula ou linha do grid preenchido, você consegue mover a seleção para outra linha usando o teclado?

    Seu código não faz sentido. Se quer que o grid receba foco num evento do textbox ou algum botão de pesquisa, o que você precisa é usar dgvProdutos.Focus(); apenas.


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por um acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    quinta-feira, 13 de outubro de 2016 12:02
  • Amigo eu nao quero clicar no gird, eu quero que ele receba o foco, para eu usar direto o teclado, sem o mouse, entendeu?
    mas de acordo com o que o grid vai sendo preenchido, o foco permanece no txtbox
    • Editado TiagoJesusTJS quinta-feira, 13 de outubro de 2016 12:07
    quinta-feira, 13 de outubro de 2016 12:07
  • Muito estranho, sem usar código nenhum, apenas clicando com o mouse sobre qualquer célula e navegando pelo teclado funciona perfeitamente aqui. Você está usando algo diferente aí nessa datagrid? Personalizou ela de alguma forma?


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    quinta-feira, 13 de outubro de 2016 12:09
  • consegui resolver.

    coloquei no keypress do txtbox caso aperte Enter o dgv recebe o foco;

    • Marcado como Resposta TiagoJesusTJS quinta-feira, 13 de outubro de 2016 12:13
    quinta-feira, 13 de outubro de 2016 12:13
  • Amigo eu nao quero clicar no gird, eu quero que ele receba o foco, para eu usar direto o teclado, sem o mouse, entendeu?
    mas de acordo com o que o grid vai sendo preenchido, o foco permanece no txtbox

    Meu caro, você não entendeu. Se você clicar no conteúdo do grid e conseguir movimentar a seleção com o teclado, significa que o título da sua pergunta está equivocado.

    Para dar foco no grid após algum evento basta usar o código que falei acima. Você pode criar um event handler para o evento DataBindingComplete do DataGridView e usar o dgvProdutos.Focus() para tirar o foco do TextBox e passar para o DataGridView.


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por um acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    quinta-feira, 13 de outubro de 2016 12:14