Jump to content

Apresentar Resultado na TextBox sem Botão


Castiel

Recommended Posts

Boas!

Eu estou aqui com um problema. Estou a trabalhar num programa em que quando o utilizador insere numeros na TextBox, o visual basic processa os valores e mostra o resultado noutra TextBox mas isto tudo com o clique do botão. O meu problema é que eu quero que o Visual Basic faça isso sem o botão... automaticamente e não estou a conseguir fazer isso. Já tentei várias coisas e nenhuma delas funcionou 😞

Alguém me pode ajudar?

Edited by Castiel
Link to comment
Share on other sites

Usa os eventos da TextBox.

O evento Change é chamado sempre que o texto é alterado, pelo pelo utilizador, ou por código.

Os eventos de teclado KeyDown, KeyUp e KeyPress são chamados ao ser pressionada uma tecla, ao ser libertada as tecla pressionada e quando uma tecla válida é aceite.

Tens ainda os eventos BeforeUpdate e AfterUpdate que são chamado antes e depois do valor da TextBox ser guardado. Tem mais utilidade quando a TexBox está ligada a objecto Data (ligdado a uma base de dados).

Existem muitos mais eventos.

Testa o funcionamento de todos e escolhe o que mais te convém.

  • Vote 1

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Link to comment
Share on other sites

Usa os eventos da TextBox.

O evento Change é chamado sempre que o texto é alterado, pelo pelo utilizador, ou por código.

Os eventos de teclado KeyDown, KeyUp e KeyPress são chamados ao ser pressionada uma tecla, ao ser libertada as tecla pressionada e quando uma tecla válida é aceite.

Tens ainda os eventos BeforeUpdate e AfterUpdate que são chamado antes e depois do valor da TextBox ser guardado. Tem mais utilidade quando a TexBox está ligada a objecto Data (ligdado a uma base de dados).

Existem muitos mais eventos.

Testa o funcionamento de todos e escolhe o que mais te convém.

Para me aparecer o resultado automaticamente tenho de meter o evento em todas as textbox ou só na textbox que mostra o resultado?

Link to comment
Share on other sites

Precisas antes de mais perceber o que são eventos em VB.

Alguns manuais de VB explicam bem os eventos, outros apenas a sua utilização.

No teu caso, e para que entendas o que pode fazer com os eventos, deves utilizá-los para conhecer o que cada um faz. Existem muitos exemplos na net.

Ao fazeres isso irás responder à tua questão.

Obs.: Quando tu dizes que usavas o clique do botão, estavas era a usar o evento Click do botão e não o evento da TextBox que mostra o resultado.

Edited by FreiNando

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Link to comment
Share on other sites

Tem que haver algum sinal que faça o código "disparar", podes usar o numero de caracteres.

Para quem está aprendendo C/C++ deve saber o que é o tratamento de mensagens ou eventos. Em VB isso já está feito e cada mensagem chama um procedimento associado a um objecto, que pode ser usado pelo programador.

Ao carregar numa tecla é 'disparado' o evento KeyDown, ao levantar a tecla é disparado o evento KeyUp, ao clicar no botão do rato é disparado o evento MouseDown, etc.

Existem eventos que responde a uma acção tratada pelo programa, por exemplo quando o texto de uma TextBox muda (basta apenas um caracter) é chamado o evento Change.

Para quem sabe programar Classes conhece também uma forma de criar eventos para essa classe.

Eu não dei uma resposta em concreto porque usar os eventos dos objectos faz parte do básico do Visual Básic.

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Link to comment
Share on other sites

Castiel, cria uma nova planilha com um form.

Põe nele duas textbox,duas label p/ identificá-las e uma label para o total.

Copia e cola o código abaixo no editor do VB e "brinque" com ele até obter o resultado que desejas.

Option Explicit
Dim n1 As Single
Dim n2 As Single

Private Sub TextBox1_Change()
n1 = CSng(TextBox1.Text)
ActiveCell.Range("A1").Value = CSng(n1)
End Sub

Private Sub TextBox2_Change()
n2 = CSng(TextBox2.Text)
ActiveCell.Range("A2").Value = CSng(n2)
Soma
End Sub

Private Sub Soma()
Dim n3 As Single
n3 = Format(n1 + n2)
Me.Label1.Caption = "Total" & " =   " & n3
End Sub

Se aclarar as idéias...

Edison

  • Vote 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.