Meu professor de programação nos pediu para criar uma calculadora em C-sharp igual a do Windows, e ele quer que ela realize as operações pelo teclado numerico tambem por exemplo digitar-mos o numero e a operação no teclado quando apertamos a tecla “enter” dê o resultado como se clica-se no botão igual.
Minha duvida é como faço isso eu ja criei a calculadora porem não sei relacionar uma tecla a um Botão.
Eventos do teclado podem ser capturados e tratados em uma aplicação C# Windows Forms por qualquer controle que herde de System.Windows.Forms.Control. Há três eventos do teclado: KeyPress, KeyUp e KeyDown.
O evento KeyPress ocorre quando pressionamos uma tecla. O evento KeyUp ocorre quando uma tecla é liberada. O evento KeyDown também ocorre quando pressionamos uma tecla mas, antes do evento KeyPress.
Todos os eventos do teclado possuem objetos das classes KeyEventArgs ou KeyPressEventArgs. Estes objetos possibilitam ao tratador de evento obter mais informações sobre o código ASCII da tecla pressionada, o estado das teclas modificadoras (Alt, Ctrl e Shift), etc.
Veja um trecho de código no qual usamos o evento KeyPress de um formulário para exibir na barra de títulos o caractere da tecla e seu código ASCII (para alcançar este efeito, basta clicar no formulário e pressionar uma tecla):
private void Form1_KeyPress(object sender, KeyPressEventArgs e){
// altere a propriedade KeyPreview do formulário para true
// vamos obter o caractere pressionado
char letra = e.KeyChar;
// vamos obter o código ASCII da tecla
int codigo = (int)letra;
// vamos exibir o resultado na barra de títulos
this.Text = “Caractere: ” + letra + ” – Código ASCII: ” + codigo;
}
Veja agora como podemos testar se a tecla Shift está pressionada durante um evento KeyDown (lembre-se: não é possível obter o estado de uma tecla modificadora (Alt, Shift ou Ctrl) em um evento KeyPress):
private void Form1_KeyDown(object sender, KeyEventArgs e){
// altere a propriedade KeyPreview do formulário para true
if(e.Shift){
this.Text = “A tecla Shift está pressionada”;
}
else{
this.Text = “A tecla Shift NÃO está pressionada”;
}
}
Experimente executar este código e pressionar um tecla. Uma mensagem na barra de títulos do formulário o avisará se a tecla Shift está ou não pressionada.