Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [vb .net] textbox
Forum - C# / VB.NET - [vb .net] textbox

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
ju89 (Normal User)
Pro


Messaggi: 61
Iscritto: 26/03/2014

Segnala al moderatore
Postato alle 15:12
Mercoledì, 09/04/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


Gianluca
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 19:46
Mercoledì, 09/04/2014
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.


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
ju89 (Normal User)
Pro


Messaggi: 61
Iscritto: 26/03/2014

Segnala al moderatore
Postato alle 21:38
Mercoledì, 09/04/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


Gianluca
PM Quote
Avatar
R0gerBlack (Member)
Expert


Messaggi: 210
Iscritto: 10/06/2010

Segnala al moderatore
Postato alle 22:27
Mercoledì, 09/04/2014
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

  1. Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
  2.         Dim value As Integer = TextBox1.Text
  3.         If value >= 211 And value < 2108 Then
  4.             Label1.Text = 12
  5.         ElseIf value >= 2108 And value < 5270 Then
  6.             Label1.Text = 24
  7.         ElseIf value >= 5270 And value < 99999 Then
  8.             Label1.Text = 60
  9.         End If
  10. End Sub



Volere è potere.

Se la conoscenza crea problemi, non è con l'ignoranza che si risolvono [Isaac Asimov]
PM Quote
Avatar
ju89 (Normal User)
Pro


Messaggi: 61
Iscritto: 26/03/2014

Segnala al moderatore
Postato alle 11:08
Sabato, 12/04/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

  1. Private Sub sanzione_TextChanged(sender As Object, e As EventArgs) Handles sanzione.TextChanged
  2.         Dim value As Integer = sanzione.Text
  3.         If value >= 211 And value <= 2108 Then
  4.             Label5.Text = 12
  5.         ElseIf value > 2108 And value <= 5270 Then
  6.             Label5.Text = 24
  7.         ElseIf value > 5270 And value <= 99999 Then
  8.             Label5.Text = 60
  9.         End If
  10.     End Sub


Ultima modifica effettuata da ju89 il 12/04/2014 alle 11:15


Gianluca
PM Quote
Avatar
R0gerBlack (Member)
Expert


Messaggi: 210
Iscritto: 10/06/2010

Segnala al moderatore
Postato alle 13:35
Sabato, 12/04/2014
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

  1. Dim value As Decimal = sanzione.Text


Ultima modifica effettuata da R0gerBlack il 12/04/2014 alle 13:37


Volere è potere.

Se la conoscenza crea problemi, non è con l'ignoranza che si risolvono [Isaac Asimov]
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5473
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:55
Sabato, 12/04/2014
Testo quotato

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 ...
PM Quote
Avatar
ju89 (Normal User)
Pro


Messaggi: 61
Iscritto: 26/03/2014

Segnala al moderatore
Postato alle 15:24
Sabato, 12/04/2014
perfetto risolto:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub sanzione_TextChanged(sender As Object, e As EventArgs) Handles sanzione.TextChanged
  2.         Dim value As Decimal = sanzione.Text
  3.         If value >= 211 And value <= 2108 Then
  4.             Label5.Text = 12
  5.         ElseIf value >= 2108.01 And value <= 5270 Then
  6.             Label5.Text = 24
  7.         ElseIf value >= 5270.01 And value <= 99999 Then
  8.             Label5.Text = 60
  9.         End If
  10.     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":-|


Gianluca
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 16:10
Sabato, 12/04/2014
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.


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo