Condividi:
Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!
Moderatori: Anthony47, Triumph Of Steel, archimede
di wittelsbach » 12/04/06 16:10
scusate ma come faccio a far compiere un'operazione (differenza) tra due textbox e far comparire il risultato in una label ma il tutto automatizzato non appena in una delle due textbox compare un numero?
E poi dopo aver eseguito tale operazione come faccio per far rimanere memorizzati i numeri inseriti nelle testbox e nella label di prima? Perché ogni volta che esco e rientro dal perogramma si cancellano!
Ciao e grazie!
-
wittelsbach
- Utente Senior
-
- Post: 249
- Iscritto il: 17/09/05 08:55
-
di archimede » 12/04/06 16:44
Non capisco di cosa stai parlando. C/C++? Assembler? Access? AutoCad? ...
Un titolo e una esposizione del problema un po' più accurati aiuterebbero chi ti dovrebbe aiutare.
Alessandro
-
archimede
- Moderatore
-
- Post: 2851
- Iscritto il: 07/11/02 12:41
- Località: Genova
-
di wittelsbach » 12/04/06 17:21
scusa stavo parlando di Visual Basic
-
wittelsbach
- Utente Senior
-
- Post: 249
- Iscritto il: 17/09/05 08:55
-
di hydra » 12/04/06 19:28
Puoi utilizzare il metodo textchanged del textbox, al cui interno controlli che i valori dei due textbox siano dei numeri, dopodichè fai l'operazione di sottrazione dal valore dei due textbox, trasformando il testo in cifra (in questo modo il label cambia automaticamente a ogni cifra digitata, senza bisogno di conferme).
- Codice: Seleziona tutto
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged, _ TextBox2.TextChanged
If IsNumeric(TextBox1.Text) And IsNumeric(TextBox2.Text) Then
Label1.Text = (Convert.ToDouble(TextBox1.Text) - Convert.ToDouble(TextBox2.Text)).ToString
End If
End Sub
Altrimenti puoi usare un timer, ma è meno elegante.
Se vuoi che i dati rimangano dopo che hai chiuso l'applicazione li devi salvare.
-
hydra
- Moderatore
-
- Post: 7007
- Iscritto il: 19/07/04 08:06
- Località: Vallis Duplavis
di wittelsbach » 13/04/06 08:52
grazie mille!
Ciao
-
wittelsbach
- Utente Senior
-
- Post: 249
- Iscritto il: 17/09/05 08:55
-
di wittelsbach » 13/04/06 10:13
eseguendo l'istruzione però ci sarebbe un problemino: in pratica funziona bene solo che se dopo aver inserito un numero in una textbox, ci ripensassi e decidessi di cambiarlo cancellandolo, nella label non viene rifatto il calcolo automaticamente e rimane visualizzato il calcolo con i valori precedenti.
E comunque come faccio a far capire al programma che quando nella textbox non c'è scritto niente lo deve considerare come un valore numerico pari a zero?
Ciao
-
wittelsbach
- Utente Senior
-
- Post: 249
- Iscritto il: 17/09/05 08:55
-
di hydra » 13/04/06 10:46
Beh, devi fare i vari casi dentro l'if, mentre poi fai un else (che vuol dire che non hai un numero) e resetti il label o lo metti a 0.
-
hydra
- Moderatore
-
- Post: 7007
- Iscritto il: 19/07/04 08:06
- Località: Vallis Duplavis
di hydra » 13/04/06 11:06
Anzi, viene più semplice usando delle variabili locali:
- Codice: Seleziona tutto
Dim A, B As Double
If IsNumeric(TextBox1.Text) Then
A = Convert.ToDouble(TextBox1.Text)
End If
If IsNumeric(TextBox2.Text) Then
B = Convert.ToDouble(TextBox2.Text)
End If
Label1.Text = (A - B).ToString
In questo caso basta che tu abbia un qualsiasi numero su uno dei due textbox e lui ti scrive il risultato, in quanto se l'altro textbox non contiene un numero (quindi se è "" oppure una qualsiasi altra stringa non numerica) allora viene considerato come 0.
-
hydra
- Moderatore
-
- Post: 7007
- Iscritto il: 19/07/04 08:06
- Località: Vallis Duplavis
di wittelsbach » 13/04/06 13:20
grazie mille! Avevo provato anch'io usando altre variabili. Comunque ora riprovo come hai detto tu!
-
wittelsbach
- Utente Senior
-
- Post: 249
- Iscritto il: 17/09/05 08:55
-
di wittelsbach » 13/04/06 14:03
Ho provato ma il problema non si risolve.
Quando io scrivo per esempio "7" nella textbox1 e "3" nella textbox2, il risultato corretto va a finire nella label1. E qui tutto OK.
Ma se poi vado a cancellare il "3", il risultato nella label rimane quello di prima (ovvero 7-3). Per farlo funzionare di nuovo devo scrivere "0" all'interno della testbox che voglio rimanga vuota. Io vorrei invece che la casella vuota fosse considerata "0" oppure che lo "0" sia sempre presente in entrambe le caselle.
-
wittelsbach
- Utente Senior
-
- Post: 249
- Iscritto il: 17/09/05 08:55
-
di hydra » 13/04/06 15:10
Strano, a me funziona. Ovviamente o il codice lo metti in tutti e due i metodi (textbox1_textchanged e textbox2_textchanged) oppure aggiungi all'handle del metodo il riferimento ai vari textbox.
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged
-
hydra
- Moderatore
-
- Post: 7007
- Iscritto il: 19/07/04 08:06
- Località: Vallis Duplavis
di wittelsbach » 13/04/06 17:13
ho risolto aggiungendo all'handle tutte le textbox.
Grazie mille!
-
wittelsbach
- Utente Senior
-
- Post: 249
- Iscritto il: 17/09/05 08:55
-
di hydra » 13/04/06 17:14
Prego.
-
hydra
- Moderatore
-
- Post: 7007
- Iscritto il: 19/07/04 08:06
- Località: Vallis Duplavis
Torna a Programmazione
Topic correlati a "label automatica e memorizzante":
Chi c’è in linea
Visitano il forum: Nessuno e 4 ospiti