j7-na (Normal User)
Rookie
Messaggi: 45
Iscritto: 20/10/2011
|
Salve,
ho un problema abbastanza semplice, però mi sto perdendo. In pratica ho 4 TextBox, nella prima grazie ad un command button viene visualizzato un valore.
Ecco:
Codice sorgente - presumibilmente VB.NET |
Option Explicit Dim i, N As Integer Dim Valore(1 To 25) As Double Dim totale As Double Private Sub Command1_Click() totale = Val(Text1.Text) totale = 0 Label1.Caption = "" Do N = InputBox("Quanti valori vuoi caricare?" & vbCrLf & _ "(Inserire un valore minore di 10)", "richiesta numero dati") Loop While N > 10 For i = 1 To N Valore(i) = InputBox("Inserisci Valore", "Inserimento Dati") Next i For i = 1 To N totale = totale + Valore(i) Next i Text1.Text = totale End Sub
|
Poi dopo sono andato ad inserire negli atri 3 TextBox il resto di codice:
Codice sorgente - presumibilmente VB.NET |
Private Sub Text2_Change() Dim c As Double Dim eccedenza As Double eccedenza = Val(Text2.Text) c = totale + eccedenza Text1.Text = c End Sub Private Sub Text3_Change() Dim c1 As Double Dim eccedenza1 As Double eccedenza1 = Val(Text3.Text) c1 = totale - eccedenza1 Text1.Text = c1 End Sub
|
Quando vado ad inserire un valore nella Text2...il programma automaticamente mi somma quello che ho aggiunto, se inserisco un valore nella Text3, mi sottrae il valore che ho aggiunto, ma non alla somma che ho ottenuto pochi secondi prima...ma al totale che ho ottenuto grazie al CommandButton.
Ad esempio...se ho inserito 3 valori:
1)1000
2)3000
3)1000
Facendo la somma ottengo 5000...poi inserendo nella Text2 il valore 1000, ottengo 6000, ma se nella Text3 inserisco 1000, non visualizzo 5000, ma visualizzo 4000, cioè il risultato errato. Dove sbaglio? |
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Perché utilizzi la variabile totale che non è il valore presente nella textbox2
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
j7-na (Normal User)
Rookie
Messaggi: 45
Iscritto: 20/10/2011
|
E cosa devo usare?
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Utilizza sempre il valore prendendolo direttamente dal textbox. Ad esempio
Text1.Text = CStr(CDbl(Text1.Text)+CDbl(Text2.Text))
o
Text1.Text = CStr(CDbl(Text1.Text)-CDbl(Text3.Text))
ma non usare l'evento change ...
Ultima modifica effettuata da nessuno il 05/11/2011 alle 13:32
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
j7-na (Normal User)
Rookie
Messaggi: 45
Iscritto: 20/10/2011
|
Ho bisogno che subito mi calcoli quello che voglio...perchè non devo usare l'evento change? Cosa dovrei usare?
In effetti se uso l'evento change...mi visualizza valori sbagliati.
Se ad esempio il totale è 2000...inserendo 1000 nella Text2...il totale che visualizzo è 3111...se poi inserisco 1000 nella Text3...il totale che visualizzo è 2000.
Ultima modifica effettuata da j7-na il 05/11/2011 alle 13:55 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
E' ovvio perché il change viene chiamato ogni volta che il valore cambia
Se scrivi 2000 verrà chiamato quando scrivi 2 quando scrivi 20 quando scrivi 200 e quando scrivi 2000.
Quindi avrai sommato i valori 2+20+200+2000
E se sbagli e cancelli un carattere, verrà chiamato ancora finché non termini di inserire il valore.
Devi trovare un modo per indicare che il valore che hai scritto è quello che vuoi usare. O usi il tasto Invio (e usi l'evento KeyPress) o usi dei Command (dei pulsanti) sul form per indicare la somma e la differenza.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
j7-na (Normal User)
Rookie
Messaggi: 45
Iscritto: 20/10/2011
|
Un esempio???
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Ma vuoi un esempio per tutto?
Intanto prova a seguire i suggerimenti che ti ho dato!
Prova a fare da solo ... poi, se il codice che scrivi ha problemi, ce lo mostri ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
j7-na (Normal User)
Rookie
Messaggi: 45
Iscritto: 20/10/2011
|
No, anzi ora provo a scrivere del codice con i tuoi consigli. Appena finisco ti faccio sapere. Per il momento grazie.
|
|