Newsgroup: it.comp.lang.visual-basic
Titolo: TextBox con soli numeri

Scusatemi se post una domanda che sarà già state fatte mille volte, ma...
boh...
Non c'é un sistema per far che ci si possano scrivere solo numeri?
Non c'é nessuna API?
Devo per forza fare una funzioncina? :-(
            Ciao
                Allanon
P.S: Penso che possa entrare nell FAQ questa... ;-)

 ha scritto nel messaggio
news:99vi0p$32r3n$1...@ID-67444.news.dfncis.de...


 ha scritto nel messaggio
news:99vi0p$32r3n$1...@ID-67444.news.dfncis.de...


 ha scritto nel messaggio
news:99vi0p$32r3n$1...@ID-67444.news.dfncis.de...


Ehehehhh...
Ringrazio tantissimo, in effetti i vostri suggerimenti sono preziosi e vanno
bene per 1000 casi, ma...
Il cliente più rompicogl... emh... precisino [ ;-))) ] ti fa anche il
copia-incolla e non basta intercettare la pressione di CTRL e V perché é
capace di farlo da menù o peggio ancora clickando con il destro del mouse...
:-(((
Diciamo che ho scritto una funzioncina :-) che dovrebbe bloccare tutti
questi casi (anche se ho ancora qualche problemino), poi se il capo mi
autorizza magari la posto sul SC (se pensate che possa essere interessante)
        Ciao & grazie
                Allanon


 ha scritto nel messaggio
news:99vi0p$32r3n$1...@ID-67444.news.dfncis.de...


 Devo per forza fare una funzioncina? :-(
C'e' un triplice esempio sul mio sito
http://vbsimple.virtualave.net/howto/000.htm
--
Fibia "Sakamoto" FBI
E-mail: 
fibi...@hotmail.com
ICQ UIN 63586057
Sito Personale: 
http://www.geocities.com/fibiafbi
VB Simple: 
http://vbsimple.virtualave.net
Membro #25 delle Mitiche Brigate Takahashi sezione Sud

Ciao Allanon
Nel Change del text box metti questo:
Dim i As Integer
Dim strTemp As String
strTemp = ""
For i = 1 To Len(txtField.Text)
    If Asc(right(left(txtField.Text, i), 1)) < Asc("0") Or _
        Asc(right(left(txtField.Text, i), 1)) > Asc("9") Then
    Else
        strTemp = strTemp & right(left(txtField.Text, i), 1)
    End If
Next i
txtField.Text = strTemp
e nel KeyPress questo
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
    If KeyAscii <> 8 Then
        KeyAscii = 0
        Beep
        Exit Sub
    Else
        Exit Sub
    End If
    KeyAscii = 0
    Beep
    Exit Sub
Else
    Exit Sub
End If
Il key press ti lascia passare solo numeri ed il back space.
Il change ti risolve il problema del copia incolla (lascia mettere solo
numeri.
CiaoZ
SebaMix


Prova questa:
Option Explicit
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal
hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal
hwnd As Long, ByVal nIndex As Long) As Long
Public Const GWL_STYLE = (-16)
Public Const ES_UPPERCASE = &H8&
Public Const ES_LOWERCASE As Long = &H10&
Public Const ES_NUMBER    As Long = &H2000
Private Sub Form_Load()
Dim style As Long
    style = GetWindowLong(Text1.hwnd, GWL_STYLE)
    SetWindowLong Text1.hwnd, GWL_STYLE, style Or ES_UPPERCASE
    SetWindowLong Text2.hwnd, GWL_STYLE, style Or ES_LOWERCASE
    SetWindowLong Text3.hwnd, GWL_STYLE, style Or ES_NUMBER
End Sub
Text1 viene forzata al maiuscolo, Text2 al minuscolo, Text3 a soli numeri.
Purtroppo non riesco a gestire l'immissione del separatore decimale quindi
funziona solo per numeri interi. Chissà se c'è una soluzione?
--
Lawrence Lebowsky
#marcone#@#sidsrl#.it