Oppure

Loading
09/03/09 8:03
mash_mash
Ciao a tutti , vi espongo subito il mio problemino :
ho una text box dove posso inerire solo numeri , ma vorrei anche che se il 1^ numero digitato è = a 0(zero) , non mi venga preso in considerazione(tasto 0 appunto disabilitato) , mentre se lo 0(zero) e' successivo al 1^ numero mi venga scritto.
Praticamanet io pensavo di disabilitare lo 0(zero) subito , e , non appena la text fosse <> da "" , riabilitarlo.
Grazie anticipatamente per l'aiuto.
aaa
09/03/09 12:16
theprogrammer
Con quale codice limiti l'input solo alle cifre? Modifica quello e aggiungi questa caratteristica ... non e' difficile ...
aaa
09/03/09 12:31
mash_mash
'=la mia textbox si chiama txtCodiceCliente"
'
dim varCodiceCliente as numeric
'
If IsNumeric(txtCodiceCliente.Text) Then
varCodiceCliente = txtCodiceCliente.Text
Else: txtCodiceCliente.Text = ""
txtCodiceCliente.SetFocus
End If
'
'Questo codice è corretto , ma dove dovrei fare la modifica ?
aaa
09/03/09 12:37
theprogrammer
As numeric

???
aaa
09/03/09 12:49
mash_mash
Ops ! ho digitato male , grazie per avermelo fatto notare :

dim varCodiceCliente as integer

aaa
09/03/09 12:53
theprogrammer
Allora, per Text1 (cambiala tu ...)

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 8 Then
        Exit Sub
    End If
    
    If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) Or (KeyAscii = Asc("0") And Len(Text1.Text) = 0) Then
        KeyAscii = 0
    End If
End Sub

aaa
10/03/09 19:08
antometal
Postato originariamente da theprogrammer:

Allora, per Text1 (cambiala tu ...)

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 8 Then
        Exit Sub
    End If
    
    If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) Or (KeyAscii = Asc("0") And Len(Text1.Text) = 0) Then
        KeyAscii = 0
    End If
End Sub




xò in questo caso se lo 0 viene inserito all' inizio dopo aver digitato altre ci fre lo lascia
es.
in text1 23424 poi vado all' inizio e digito 0: 023424

quindi bisogna controllare che il primo carattere sia diverso da 0

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 8 Then
        Exit Sub
    End If
    
    If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) Or (KeyAscii = Asc("0") And Left(Text1.Text,1) <> 0) Then
        KeyAscii = 0
    End If
End Sub


cmq prova anche con solo la funzione val()

private sub command1_click()
text1.text=val(text1.text)
end sub
aaa