ju89 (Normal User)
Pro
Messaggi: 61
Iscritto: 26/03/2014
|
Ho un problema,
ho una textbox dove inserire una sanzione e questa sanzione può essere rateizzata in base al valore della sanzione,per esempio
da 211€ a 2108 € massimo di rata 12
da 2108€ a 5270€ massimo di rata 24
da 5270€ a 99999€ massimo di rata 60
come faccio una volta inserita la sanzione della textbox a fare il controllo e a far uscire in una label per esempio se la multa è di 2500€ il numero massimo di rata 24?
Vi ringrazio anticipamente
|
|
Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
Scusa se ti rispondo cosi ma con tutto il rispetto possibile questo non è un forum di finanza...
Spiegaci per bene cosa vuoi fare, che approccio stai usando, dove ti blocchi e che dubbi hai.
|
|
ju89 (Normal User)
Pro
Messaggi: 61
Iscritto: 26/03/2014
|
Ho una textbox dove devo inserire diciamo 3 categorie di numeri: 1) da 211 a 2108 2) da 208,01 a 5270 3) 5270,01 a 99999
Adesso quando inserisco valori sulla textbox la categoria 1, una volta inserito su di una label deve uscire il numero 12; se esce la categoria 2 deve uscire 24; se esce la categoria 3 deve uscire 60.
Spero di essermi spiegato
|
|
R0gerBlack (Member)
Expert
Messaggi: 210
Iscritto: 10/06/2010
|
La tua difficoltà è nel controllo oppure nell'evento della textbox?
Per fare qualcosa quando si digita su una textbox è sufficiente usare l'evento TextBox.TextChanged (se fai doppio click sulla textbox Visual Studio te lo aggiunge da solo)
Codice sorgente - presumibilmente VB.NET |
Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged Dim value As Integer = TextBox1.Text If value >= 211 And value < 2108 Then Label1.Text = 12 ElseIf value >= 2108 And value < 5270 Then Label1.Text = 24 ElseIf value >= 5270 And value < 99999 Then Label1.Text = 60 End If End Sub
|
|
|
ju89 (Normal User)
Pro
Messaggi: 61
Iscritto: 26/03/2014
|
Se metto 2108,01 mi da sempre la rateizzazione di 12, invece dovrebbe darmi 24. ho cambiato il codice togliendo il maggiore uguale senno nella prima ipotesi se mettevo 2108 mi dava 24 rate invece che 12..
Codice sorgente - presumibilmente VB.NET |
Private Sub sanzione_TextChanged(sender As Object, e As EventArgs) Handles sanzione.TextChanged Dim value As Integer = sanzione.Text If value >= 211 And value <= 2108 Then Label5.Text = 12 ElseIf value > 2108 And value <= 5270 Then Label5.Text = 24 ElseIf value > 5270 And value <= 99999 Then Label5.Text = 60 End If End Sub
|
Ultima modifica effettuata da ju89 il 12/04/2014 alle 11:15 |
|
R0gerBlack (Member)
Expert
Messaggi: 210
Iscritto: 10/06/2010
|
Scusa non avevo considerato l'ipotesi dei numeri decimali. Con il tipo integer 2108,01 = 2108 (ma anche 2108,99 = 2108).
Modifica la dichiarazione di value in questo modo
Codice sorgente - presumibilmente C# / VB.NET |
Dim value As Decimal = sanzione.Text
|
Ultima modifica effettuata da R0gerBlack il 12/04/2014 alle 13:37 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
Postato originariamente da R0gerBlack:
ma anche 2108,99 = 2108 |
No ... in quel caso vale 2109
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à. |
|
ju89 (Normal User)
Pro
Messaggi: 61
Iscritto: 26/03/2014
|
perfetto risolto:
Codice sorgente - presumibilmente VB.NET |
Private Sub sanzione_TextChanged(sender As Object, e As EventArgs) Handles sanzione.TextChanged Dim value As Decimal = sanzione.Text If value >= 211 And value <= 2108 Then Label5.Text = 12 ElseIf value >= 2108.01 And value <= 5270 Then Label5.Text = 24 ElseIf value >= 5270.01 And value <= 99999 Then Label5.Text = 60 End If End Sub
|
però una volta compilato il programma ed avviato se cancello tutto il contenuto della textbox "sanzione" il programma va in crash e mi esce fuori questo messaggio:
Eccezione non gestita nell'applicazione. Cast non valido dalla stringa " " al tipo "decimal"
|
|
Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
Devi fare una verifica sul valore del texbox, dovrebbe essere un numero!
Oppure puoi risolvere sostituendo il textbox con un componente che accetta solo numeri.
|
|