Calculadora

Como fasso uma calculadora parecida como a do Windows que tem os numeros para clickarmos mas também podermos usar o teclado?

Projecto em Visual Basic.NET
 
calculo que a parte de teres os botoes que funcionem como teclado deves saber fazer.

Agora a parte de usar o teclado do pc e ignorar as operaçoes.

Para isso usas o handler OnKeyDown da textbox, o que isto faz é que sempre que alguem carregue numa tecla, vai ser executada a tua função, e assim podes analisar a tecla premida e escolher o que queres fazer.

Código:
Dim oper As Integer = 0
Dim clear As Boolean = False
Dim valor As Double = 0
	
	
Sub TextBox1KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs )
		
		
		If e.KeyCode = keys.Multiply Then
			e.SuppressKeyPress = True
			oper = 1
			clear = True
			valor = CInt(TextBox1.Text )
			exit sub
		elseIf e.KeyCode = keys.Enter  Then
			e.SuppressKeyPress = True
                        
                        if oper = 1
			         valor = valor * cint(TextBox1.Text )
                        end if

			TextBox1.Text = valor
			valor = 0
			clear = true
		Else
			If clear Then
				TextBox1.Text = ""
			End If
		End If
		
		clear = False
		
	End Sub

com e.SuppressKeyPress = True fazes com que as teclas especiais (*, /, +, -, enter, etc) não apareçam na textbox. Este meu exemplo so esta feito para numeros inteiros (usei CINT em vez de CDBL)

Sempre que aparece uma tecla especial, eu suprimo-a, mudo o valor de "oper" para guardar a operação a executar e marco "clear" como TRUE, assim apago o valor inicial para poder inserir o 2º valor. Guardo tambem em "valor" o valor do 1º numero que quero usar na conta.

Quando apanho o ENTER, basta ver que operacao tenho em "oper", e executo essa opcao com os valores inseridos


Isto esta um bocado confuso mas acho que da para perceber a ideia
 
Back
Topo