none
Duvida sobre Keys RRS feed

  • Pergunta

  • Bom dia,

    Em um DGV quando aperto F7 libera a celula para editar. Eu queria quando clicar F7 e libera para editar e tambem na edição clicar F9 ele abre a tela de busca.

    Ja fiz o debug e nunca entra na condição do F9 poderia me ajudar.

    A parte do F9 e somente um teste para ver se vai entrar na condição.

    private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.F7)
                {
                    dataGridView1.ReadOnly = false;
                    dataGridView1.BeginEdit(true);
                    if(e.KeyCode == Keys.F9)
                    {
                        MessageBox.Show("F9");
                    }
                }


    terça-feira, 11 de fevereiro de 2020 11:10

Respostas

  • Conseguiu resolver mas um amigo.

    Adicionei o evento KeyDown do form e a propriedade do keypress do form para true e deu certo...

    • Marcado como Resposta Michael_Cats quinta-feira, 13 de fevereiro de 2020 16:05
    quinta-feira, 13 de fevereiro de 2020 16:05

Todas as Respostas

  • Boa tarde, Michael!

    Da forma que você está tentando acredito que não irá conseguir porque você está fazendo duas verificações diferentes de qual tecla foi apertado.

    Para dar certo teria que ser algo assim:

    bool liberarPesquisa = false;
    
     private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
            {
    
                if (e.KeyCode == Keys.F7)
                {
                    dataGridView1.ReadOnly = false;
                    dataGridView1.BeginEdit(true);
                    liberarPesquisa = true;
                }
    
                if (e.KeyCode == Keys.F9 && liberarPesquisa ==true)
                {
                    MessageBox.Show("F9");
                }
            } 

    Esse código faz o seguinte. Primerio quando você aperta F7 a variavel liberarPesquisa (que é uma variavel global) é setada para true, significando que o usuário á apertou F7. Depois quando o usuário aperta F9 você faz a verificação de qual tecla o usuário apertou e se a variavel está true. Isso quer dizer que se a varável estiver true o usuário já apertou F7 antes do F9.

    Flw

    terça-feira, 11 de fevereiro de 2020 18:30
  • Bom dia LunoBr

    Fiz o teste aqui infelizmente não deu certo. Quando eu seleciono F7 ele deixa o BeginEdit true.

    Ele percorre toda chave do meu keydown quando termina ele vai para o meu evento CellEndEdit onde vai verificar se foi editado se sim vai executar a query.

    Tem alguma outra forma de fazer esse procedimento ?

    quarta-feira, 12 de fevereiro de 2020 11:39
  • Conseguiu resolver mas um amigo.

    Adicionei o evento KeyDown do form e a propriedade do keypress do form para true e deu certo...

    • Marcado como Resposta Michael_Cats quinta-feira, 13 de fevereiro de 2020 16:05
    quinta-feira, 13 de fevereiro de 2020 16:05