Oppure

Loading
06/08/14 6:15
ginmile77
Ciao a tutti. Ho ricreato in VB il funzionamento del registratore di cassa della mia attività. Non sono riuscito perchè non ho idea di come fare per eseguire questa particolarità. Praticamente nel momento in cui si digita sulla cassa, il display parte con 0,00. Se si inizia a digitare ad esempio 50 centesimi lui parte da destra e prosegue verso sinistra. Con la virgola sempre fissa. Non so come ricreare questa funzione. Mi aiutate?
aaa
06/08/14 7:06
Snogar
Mmmmm se ho capito bene come funziona potresti provare a creare due variabili una per i centesimi e una per gli euro, a seconda del loro riempimento visualizzi virgola e affini.
aaa
06/08/14 7:31
ginmile77
Ho provato con una maskedtexbox __,__ ma non mi permette di digitare da destra a sinistra. Avete una soluzione?
aaa
06/08/14 16:24
vankraster
è facile, ti metto un pseudocodice c#

Nel Textbox fai proprietà- TextAlign:Right
poi nel evento KeyPress collega questo codice:

        int numero = 0;
        bool firstPRESS = true;

        private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
        { 
            if (firstPRESS)
            {
                firstPRESS = false;
                textBox2.Text = "0,0" + e.KeyChar.ToString();
                int.TryParse(e.KeyChar.ToString(), out numero);
            }
            else
            {
                int T_num = 0;
                int.TryParse(e.KeyChar.ToString(), out T_num);
                numero = (10 * numero) + T_num;
                 
                decimal res = (decimal)numero / 100m;
                textBox2.Text = res.ToString("######0.00");
            }

            e.Handled = true;
        }
aaa
06/08/14 17:30
ginmile77
Appena arrivo a a casa provo. Comunque grazie mille
aaa
06/08/14 23:22
ginmile77
Perfetto funziona. Hai la possibilità di tradurlo in Vb.net? mille grazie
aaa
07/08/14 6:26
dnha
    Dim numero As Integer = 0
    Dim firstPRESS As Boolean = True

    Private Sub TextBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress
        If firstPRESS Then
            firstPRESS = False
            TextBox1.Text = "0,0" + e.KeyChar.ToString()
            Integer.TryParse(e.KeyChar.ToString(), numero)
        Else
            Dim T_num As Integer = 0
            Integer.TryParse(e.KeyChar.ToString(), T_num)
            numero = (10 * numero) + T_num

            Dim res As Decimal = CDec(numero) / 100D
            TextBox1.Text = res.ToString("######0.00")
        End If

        e.Handled = True
    End Sub
aaa
07/08/14 6:35
ginmile77
Ti ringrazio. Non riesco a capire la parte if firstpress then senza una assegnazione
aaa