none
Tecla Enter executa botão , Mensagen de confirmação

    Question

  • Olá estou com uma duvida..

    Por exemplo:

    Tenho um Form de login com um botão [Entrar] , inseri o seguinte codigo no evento KeyUp do Form


    //quando pressionado a tecla Enter executa o botão Entrar
    private void Login_KeyUp(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    this.BtnEntrar.PerformClick();
                }
            }



    Até ai tudo bem,aperto tecla Enter e ela chama o click do botão Entrar

    Mas no botão entrar  tem MessageBox's  tipo para informar  Bem Vindo,  Usuario invalido ...
    se eu apertar Enter ele não dá Ok na MessageBox, ele executa o comando do click no Botão Entrar


    Se houvesse um meio de saber se existe uma messageBox aberta,  ai seria só eu add um IF

    Procurei no forum mas não encontrei...
    Agradeço qualquer ajuda..
    Tuesday, October 27, 2009 1:03 AM

Answers

  • Roarealva,

       Pelo que eu entendi, o problema é:


       - Você exibe MessageBox ao clicar no botão Entrar.
       - Quando você aperta ENTER para clicar sair da mensagem (como se fosse o OK) a funcao entrar é executada novamente.

       Se o problema for este, basta solucionar da seguinte maneira: 

    MessageBox.Show(this, "Mensagem de Teste");

    O primeiro parâmetro indica qual "Janela" é Owner da mensagem, ou seja, para acessar a janela novamente é necessário fechar o MessageBox.

    Desta forma você soluciona o problema que você tem.

    Qualquer dúvida, escreva!
    Tuesday, October 27, 2009 10:44 AM


  • É isso mesmo Leandro você entendeu certinho,  mas sua dica não Funcionou...


    é uma coisa bem interessante

    crie um novo winform , com um botão e ative a propriedade do form keypriview  agora se vc colar o codigo abaixo no  evendo Form1_KeyUp ele dá esse erro  , agora se mudar para o Form1_KeyDown não dá, coisinha simples que me tiro bom tempo...


    //quando pressionado a tecla Enter executa o botão Entrar
    private void Form1_KeyDown (object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    this.BtnEntrar.PerformClick();
                }
            }


    agora  muito boa essa Propriedade  accept button   !! no  Login com somente 1 botão funciona perfeitamente !



    Vlw  pessoal !!
    Wednesday, October 28, 2009 3:06 AM
  • Roeralva, aki eu testi no evento KeyDown(esqueci de mencionar que era pra troca de KeyUp para KeyDown) e funciona, pois a mensagem fica travada na tela. Você só "re-acessa" o form depois de sair da mensagem (por isso o uso do THIS, para forçar este comportamento).

    Qualquer dúvida, escreva!

    Wednesday, October 28, 2009 12:26 PM

All replies

  • Roarealva,

       Pelo que eu entendi, o problema é:


       - Você exibe MessageBox ao clicar no botão Entrar.
       - Quando você aperta ENTER para clicar sair da mensagem (como se fosse o OK) a funcao entrar é executada novamente.

       Se o problema for este, basta solucionar da seguinte maneira: 

    MessageBox.Show(this, "Mensagem de Teste");

    O primeiro parâmetro indica qual "Janela" é Owner da mensagem, ou seja, para acessar a janela novamente é necessário fechar o MessageBox.

    Desta forma você soluciona o problema que você tem.

    Qualquer dúvida, escreva!
    Tuesday, October 27, 2009 10:44 AM
  • O que o Leandro falou irá resolver seu problema, só um detalhe quanto ao seu código, ao invés de usar o KeyUp, va nas propriedades do form e procure por accept button, e nessa propriedade indique o botão Entra. Assim o próprio form sabe que o enter irá acionar o click do botão entra e você pode remover o evento de keyup
    Tuesday, October 27, 2009 12:19 PM


  • É isso mesmo Leandro você entendeu certinho,  mas sua dica não Funcionou...


    é uma coisa bem interessante

    crie um novo winform , com um botão e ative a propriedade do form keypriview  agora se vc colar o codigo abaixo no  evendo Form1_KeyUp ele dá esse erro  , agora se mudar para o Form1_KeyDown não dá, coisinha simples que me tiro bom tempo...


    //quando pressionado a tecla Enter executa o botão Entrar
    private void Form1_KeyDown (object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    this.BtnEntrar.PerformClick();
                }
            }


    agora  muito boa essa Propriedade  accept button   !! no  Login com somente 1 botão funciona perfeitamente !



    Vlw  pessoal !!
    Wednesday, October 28, 2009 3:06 AM
  • Roeralva, aki eu testi no evento KeyDown(esqueci de mencionar que era pra troca de KeyUp para KeyDown) e funciona, pois a mensagem fica travada na tela. Você só "re-acessa" o form depois de sair da mensagem (por isso o uso do THIS, para forçar este comportamento).

    Qualquer dúvida, escreva!

    Wednesday, October 28, 2009 12:26 PM