none
Como saber se ocorreu um evento "Click" no meu Form? RRS feed

  • Pergunta

  • Estou começando em C# e um dos exercícios é fazer uma calculadora, e a minha está funcionando assim: Ao clicar no " = " para ver o resultado, ele aparece normal, só que na hora de fazer outra operação,clicando em algum número obviamente o resultado continua no TextBox. (EX: uma operação tem resultado 1, ao fazer posteriormente, por exemplo 2 - 2 , aparece no TextBox "12", junção do resultado com o novo valor) eu gostaria que após imprimir o resultado, o programa identificasse qualquer evento do tipo "Click" no teclado númerico para limpar o TextBox. Alguem pode me ajudar?
    quarta-feira, 21 de fevereiro de 2018 13:51

Respostas

  • Certo, então creio que está utilizando apenas código server-side (nada de JavaScript) para tratar os clicks, certo?

    Caso sim, suponho que você tenha adicionado um método para tratar cada botão numérico e o botão do igual, certo?

    Você precisa armazenar que o botão igual já foi clicado para saber se o botão numérico irá limpar o textbox. Portanto você precisará usar o código similar ao que coloquei em minha primeira resposta, com a diferença que precisará utilizar um campo do tipo HiddenField do ASP.Net ao invés da variável clicouBotao, uma vez que a cada navegação (click botão), as variáveis perdem seus valores, mas os componentes são mantidos, devido ao ViewState.


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    • Marcado como Resposta Gabriel_Vinícius quarta-feira, 21 de fevereiro de 2018 14:48
    quarta-feira, 21 de fevereiro de 2018 14:43

Todas as Respostas

  • Crie uma variável externa aos seus métodos indicando se houve click no botão igual. Ex:

    public class Pagina: Page
    {
       private bool clicouIgual = false;
    
       private void btnNumero1_Click(...)
       {
          if (this.clicouIgual)
          { // Se clicou no igual limpo o textbox primeiro
              textBoxDisplay.Text = String.Empty;
          }
          textBoxDisplay.Text += "1";
          this.clicouIgual = false;
       }
    
       private void btnTotal_Click(...)
       {
          this.clicouIgual = true;
    
          // faz calculo e exibe no textBoxDisplay
       }
    }


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    quarta-feira, 21 de fevereiro de 2018 14:09
  • Acredito que não expliquei bem, usei algumas partes do seu código (valeu), mas a parte que eu preciso fica após o botão igual. Clicando nele eu queria identificar um clique no teclado numérico (1,2,3,4,5,6,7,8,9,0), para caso aconteça limpar a TextBox e não atrapalhar futuras operações. Poderia me ajudar?
    quarta-feira, 21 de fevereiro de 2018 14:25
  • Gabriel,

    Teclado numérico que você se refere é o físico (teclado do seu computador) ou você criou um teclado com botões na sua página (teclado virtual)? 


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    quarta-feira, 21 de fevereiro de 2018 14:31
  • Ah sim desculpa, é um teclado de botões

    quarta-feira, 21 de fevereiro de 2018 14:33
  • Certo, então creio que está utilizando apenas código server-side (nada de JavaScript) para tratar os clicks, certo?

    Caso sim, suponho que você tenha adicionado um método para tratar cada botão numérico e o botão do igual, certo?

    Você precisa armazenar que o botão igual já foi clicado para saber se o botão numérico irá limpar o textbox. Portanto você precisará usar o código similar ao que coloquei em minha primeira resposta, com a diferença que precisará utilizar um campo do tipo HiddenField do ASP.Net ao invés da variável clicouBotao, uma vez que a cada navegação (click botão), as variáveis perdem seus valores, mas os componentes são mantidos, devido ao ViewState.


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    • Marcado como Resposta Gabriel_Vinícius quarta-feira, 21 de fevereiro de 2018 14:48
    quarta-feira, 21 de fevereiro de 2018 14:43