Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    [VB6]: Caratteri Numerici (. e ,)

    Ciao ragazzi
    l'oggetto è un po' incomprensibile ma ora ve lo spiego...
    Ho una casella di testo dove vengono ammessi solamente caratteri numerici, io vorrei nell'evento Change al momento di scrivere gli importi s'inserisca il punto e la virgola tipo:

    Io scrivo: 10500
    e in automatico: 10.500,00

    Attualmente e momentaneamente ho inserito il classico codice nell'evento KeyPress per i caratteri numerici, ma chiaramente non va bene:

    Private Sub TXT_PI_KeyPress(KeyAscii As Integer)
    If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = 8) Then
    MsgBox "Sono ammessi solo caratteri numerici!", vbCritical, "Info Fatture"
    KeyAscii = 0
    End If
    End Sub

    Confido in un vostro aiuto.
    Ciao, vrclaudio

  2. #2
    domanda preliminare: il povero utente NON può inserire decimali?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    ...

    Assolutamente si!!!

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Perchè chiedere ad un TextBox cose che non sa fare
    quando hai a disposizione il controllo MaskEdit che invece è fatto apposta?

    Ciao

  5. #5

    Re: ...

    Originariamente inviato da vr-claudio
    Assolutamente si!!!
    e come fa ad inserirli se NON può inserire la virgola?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    esatto optime!!!

    non so' nemmeno io come possa fare con una MaskEdit, comunque sono tutt'orecchi!
    vrclaudio

  7. #7
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao vr-claudio,
    potresti provare nel seguente modo utilizzando due Txt:

    codice:
    Public Function CtrS(strTesto As String)
        On Error Resume Next
            If IsNumeric(strTesto) Then
                CtrS = Format(CDbl(strTesto), "#,##0.00")
                Else: CtrS = 0
                MsgBox "Prego inserire solo numeri!"
            End If
    End Function
    '----------------------------------------------
    Private Sub Txt1_Change()
        Txt2.Text = CtrS(Txt1.Text)
    End Sub
    Fammi sapere.
    LM

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    Carissimo LMondi...

    Ciao LMondi
    ben ritrovato ho guardato un po' il tuo codice, chiaramente eccellente, anche se sono l'ultimo a giudicare il lavoro di GENI!
    Mi sono permesso solamente di sostituire, spostare e aggiungere il codice in modo leggermente diverso.

    Questo l'ho spostato in LostFocus:
    Txt2.Text = CtrS(Txt1.Text)

    Nell'evento KeyPress ho inserito questo:
    Select Case KeyAscii
    Case 0 To 31, 44, 48 To 57
    Case Else
    MsgBox "Sono ammessi solamente caratteri numerici!", vbCritical, "Info Fatture"
    KeyAscii = 0
    End Select

    Sembra funzionare bene ma come al solito mi perdo in un bicchiere d'acqua, cosi' facendo mi accetta la virgola nell'evento KeyPress, ma il punto l'ho metto solamente in lostfocus.
    So' che è un problema di codici ascii ma se gentilmente puoi (o potreste) aiutarmi mi faresti un piacere.
    Come al solito grazie infinite
    vrclaudio

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: esatto optime!!!

    Originariamente inviato da vr-claudio
    non so' nemmeno io come possa fare con una MaskEdit, comunque sono tutt'orecchi!
    vrclaudio
    Intanto aggiungi il controllo al progetto, dopo lo aggiungi sul form e crei la 'maschera', cioè la stringa che ti serve impostare. Funziona come un po' come con la Format().
    Se imposti una data, l'utente vedrà '__/__/____'.

    Io non posso dirti esattamente come fare, perchè non uso il Maskedit ma un controllo di terze parti ancora più avanzato, ma sulla guida è spiegato tutto bene.

    Poi se hai bisogno di aiuto, chiedi pure.

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.