Oppure

Loading
23/04/14 12:42
ju89
Postato originariamente da amreo:
If TextBox1.Text.EndWith(",";) Then
Textbox1.Text &= ",00"
End If


Permettimi di correggerti, il codice corretto sarebbe:

 
If TextBox1.Text.EndsWith(",") Then
      Textbox1.Text &= ",00"
End If 


ti eri dimenticato la s di End.

Comunque tornando a noi, se digito una sanzione di 5800€ tutto bene, premendo il tasto invio il programma mi completa 5800 con 5800.00, se invece metto 5800.30 nella textbox il programma me lo completa con 5800.30.00 e qui è sbagliato, quando inserisco i decimali non dovrebbe inserire gli zeri, aiuti in merito? Grazie!
aaa
24/04/14 22:35
R0gerBlack
Ma che diavolo è sta roba?
If TextBox1.Text.EndsWith(",") Then
      Textbox1.Text &= ",00"
End If


Se vuoi un arrotondamento decimale a due cifre (sottoforma di stringa, nel tuo caso)

Basta che usi la funzione Format
'CDbl lo uso per una conversione esplicita da string (textbox.text) a double (round)
Dim Round As Double = CDbl(Val(Textbox1.Text))
Dim numero As String = Format(Round, "0.00" )
Textbox1.Text = numero 


N.B. Ricorda che in america la virgola è usata per separare i numeri ogni 3 cifre (1,000,000) mentre il punto è usato per i decimali (Es. 1,045.56) quindi, devi utilizzare il punto.
Ultima modifica effettuata da R0gerBlack 24/04/14 22:36
aaa
25/04/14 8:33
ju89

    'CDbl lo uso per una conversione esplicita da string (textbox.text) a double (round)
    Dim Round As Double = CDbl(Val(Textbox1.Text))
    Dim numero As String = Format(Round, "0.00" )
    Textbox1.Text = numero


Perfetto R0gerBlack adesso funziona alla perfezione!

Però aggiungo un'altra domanda. Se volessi usare questa funziona anche quando premo il tasto TAB? Ho letto che è impossibile disattivare la funzione TAB è vero?
Vi ringrazio
aaa
25/04/14 10:19
R0gerBlack
Sbagliato, il codice del tasto TAB in Visual Basic è dato dalla funzione

ProcessTabKey(ByVal forward As Boolean)


Se sovrascriviamo questa funzione con una personalizzata, puoi eseguire quello che ti serve quando viene premuto il tasto tab, prima - o dopo - della sua effettiva funzione. Anzi se vuoi puoi persino eliminarla:

'Esempio di polimorfismo: Modifichiamo la funzione originale ProcessTabKey
Protected Overrides Function ProcessTabKey(ByVal forward As Boolean) As Boolean
    'Anteponiamo questo codice al costruttore MyBase
    If sanzione.Focused Then
        'Codice da eseguire alla pressione del tasto Tab
    End If
    'Richiamiamo la funzione originale: 
	'Se l'istruzione MyBase.ProcessTabKey(forward) viene commentata
    'Il pulsante tab perderà il suo effetto
    MyBase.ProcessTabKey(forward)
    Return True
End Function


EDIT
Rileggendo il primo post, ho visto che vuoi anche che il pulsante invio funga da tab. Se vuoi fare questo puoi risparmiare ulteriormente codice inserendo questo codice nella Sub sanzione_KeyPress
If e.KeyCode = Keys.Enter Then
     'Esegui il codice del pulsante tab sovrascritto
     ProcessTabKey(True)
     e.SuppressKeyPress = True
End If
Ultima modifica effettuata da R0gerBlack 25/04/14 10:43
aaa