Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    254

    [VB6] Input solo numerico

    Salve,
    come possofare in modo elegante un controllo che
    verifichi alla prossione di un tasto che il carattere
    inserito in un textbox sia un numero e:

    -se è un numero, l'input avviene regolarmente
    -se è un carattere l'input non avviene e nel campo non
    viene visualizzato nulla.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao folal !
    Potresti usare questa funzione:
    codice:
    Option Explicit
    '-------------------------
    Public Function CtrDig(KeyAscii As Integer) As Integer
    If Not IsNumeric(Chr(KeyAscii)) Then
        KeyAscii = 0
    End If
        CtrDig = KeyAscii
    End Function
    '-------------------------
    Private Sub Text1_KeyPress(KeyAscii As Integer)
    KeyAscii = CtrDig(KeyAscii)
    End Sub
    LM

  3. #3
    secondo me sarebbe preferibile controllare l'evento change per evitare i taglia incolla
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  4. #4
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    xegallo non ho capito. Mi interessa, spiegati meglio.
    LM

  5. #5
    Ciao prova così:
    codice:
    Public Sub txtbox_Change()
      If IsNumeric(txtbox.Text) Then
       'quello che vuoi che faccia
          Else:
            MsgBox "Casella di testo txtbox: INSERIRE SOLO VALORI NUMERICI!", vbCritical, "nomedeltuoprogramma"
      txtbox.SetFocus
      Exit Sub
     End If
    End Sub
    I'll see you on the dark side of the moon

  6. #6
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    C'è la FAQ 99
    ... e non usare while wend è una sintassi deprecata

  7. #7
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    axsw funziona bene. Mi sono permesso di fare una piccola modifica in modo che sia cancellato l'inserimento Non numerico.
    codice:
    Public Sub Txt1_Change()
        
        Dim ix As String
        Dim ixs As String
        Dim ix2 As String
        
        ix = Len(Txt1.Text)
        If ix = 0 Then
            Exit Sub
        End If
        
        ixs = (Txt1.Text)
        If IsNumeric(Txt1.Text) Then
            Txt1.SetFocus
            Else
            MsgBox "Casella di testo Txt1: INSERIRE SOLO VALORI NUMERICI!", vbCritical, "nomedeltuoprogramma"
            ix2 = Mid(ixs, 1, (ix - 1))
            Txt1.Text = ix2
            Exit Sub
        End If
    End Sub
    LM

  8. #8
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    xegallo, così va bene ?
    LM

  9. #9
    io faccio una cosa semplice semplice
    codice:
    private sub text1_change()
    if not isnumeric(text1.text) then
    text1.text = ""
    end if
    Puoi cambiare text1_change con text1_lostfocus

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    254
    Grazie ai vostri consigli ho trovato un modo veloce
    ed abbastanza pulito per fare quello che cercavo.

    Lo scrivo in modo che possa servire anche ad altri:

    Private Sub txtCampo_KeyPress(KeyAscii As Integer)
    If (((KeyAscii < 48) Or (KeyAscii > 57)) And ((KeyAscii <> 13) And (KeyAscii <> 8) And (KeyAscii <> 188) And (KeyAscii <> 46))) Then
    KeyAscii = 0
    End If
    End Sub


    Grazie.

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.