Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    10

    [VB]Impostare il testo che può essere immesso

    Salve.é la prima volta che posto e scusatemi se faccio qualche errore nell'impostazione del topic.
    Io ho questo problema:in una textbox devo fare in modo che possano essere immessi solo i numeri (da 0 a 9 e i loro composti).Ho provato il codice proposto nelle faq di visual basic nella guida su html.it,però utilizzandolo nn sò come abilitare il tasto backspace.Data la domanda avrete capito che sono un novizio
    Ah vorrei anche sapere come impostare l'intervallo di valori da immettere.mi spiego meglio,il valore massimo e minimo del numero che si verrà a formare nella texbox.FIducioso in una vostra risposta vi ringrazio anticipatamente

  2. #2
    ci dovresti dire per che versione di visual basic ricordati di metterlo sempre nel titolo
    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    10
    Ah , scusate è vb6

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    205

    Re: [VB]Impostare il testo che può essere immesso

    credo di sia un pò di confusione...
    cmq andiamo per gradi:
    per controllare che nella textbox ci siano solo valori numerici:

    codice:
    Private Sub Command1_Click()
    If IsNumeric(Text1.Text) Then
        'QUI QUELLO CHE DEVE FARE
    Else
    MsgBox "INSERISCI VALORI NUMERICI!"
    End If
    End Sub
    per impostare il num MAX di caratteri nella textbox:

    codice:
    Private Sub Text1_Change()
    Text1.MaxLength = 5
    End Sub
    per il Min non mi sembra ci sia....
    ma puoi ovviare interrogando una variabile
    in questo modo otterrai il num dei caratteri e da qui puoi gestirli come vuoi...
    codice:
    Private Sub Command1_Click()
    pippo = Len(Text1.Text)
    End Sub
    non sò se sono riuscito a rispondere a tutto...in ogni caso fammi sapere!
    Ciao Giano!

    Originariamente inviato da medi
    Salve.é la prima volta che posto e scusatemi se faccio qualche errore nell'impostazione del topic.
    Io ho questo problema:in una textbox devo fare in modo che possano essere immessi solo i numeri (da 0 a 9 e i loro composti).Ho provato il codice proposto nelle faq di visual basic nella guida su html.it,però utilizzandolo nn sò come abilitare il tasto backspace.Data la domanda avrete capito che sono un novizio
    Ah vorrei anche sapere come impostare l'intervallo di valori da immettere.mi spiego meglio,il valore massimo e minimo del numero che si verrà a formare nella texbox.FIducioso in una vostra risposta vi ringrazio anticipatamente

  5. #5
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Secondo me non intendeva impostare il numero massimo e minimo di caratteri, ma quello del valore numerico della stringa inserita.
    Se fosse così, prova in questo modo:
    codice:
    Private Sub Form_Load()
    Text1.Text = "10"
    End Sub
    
    Private Sub Text1_KeyPress(KeyAscii As Integer)
    'Se il carattere digitato deve essere ignorato, annulla la digitazione.
    If KeyAscii <> 8 Then
      If InStr("0123456789", Chr$(KeyAscii)) = 0 Then KeyAscii = 0
    End If
    End Sub
    
    Private Sub Text1_LostFocus()
    Const Minimo = 10
    Const Massimo = 90
    Static ValoreCorretto As String
    
    If Val(Text1.Text) > Massimo Or Val(Text1.Text) < Minimo Then
      MsgBox "Il valore non rientra nei limiti impostati", vbExclamation
      If Len(ValoreCorretto) = 0 Then
        ValoreCorretto = Minimo
      End If
      Text1.Text = ValoreCorretto
      Text1.SelStart = Len(Text1.Text)
      Text1.SetFocus
    End If
    ValoreCorretto = Text1.Text
    End Sub
    Il controllo sull'inserimento è lo stesso evidenziato nella FAQ99, ma ho aggiunto l'eccezione per il backspace.
    ... e non usare while wend è una sintassi deprecata

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    10
    In effetti per intervallo numerico intendevo il valore del numero(es. da 10 a 100 nn di meno ne di più).Volevo un chiarimento.Mi potresti indicare l'eccezione dle backspace?.L'avevo già accennato di essere un novizio

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    10
    ah e un'altra cosa (certo che ve le sto faceno girare),volevo modificare il precedente messaggio ma giò era passata un'ora,siccome molte cose impostate nel codice (la parte meno chiara e l'utilizzo del codice confocus,) mi potresti anche con una linea di commento spiegarmle e perchè sono state usate?grazie e nn scocciatevi please

  8. #8
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    codice:
    Private Sub Form_Load() 'Al caricamento della finestra
    Text1.Text = "10"       'viene impostato il valore di default (10)
    End Sub                 'per la TextBox Text1
    
    Private Sub Text1_KeyPress(KeyAscii As Integer)
                           'Se il codice del tasto premuto è 8, cioè
    If KeyAscii <> 8 Then  'quello relativo al backspace, annulla il controllo
                           'altrimenti lo effettua
      If InStr("0123456789", Chr$(KeyAscii)) = 0 Then KeyAscii = 0
    End If
    End Sub
    
    Private Sub Text1_LostFocus()
    Const Minimo = 10      'Valore minimo consentito e di default
    Const Massimo = 100    'Valore massimo consentito
    Static ValoreCorretto As String 'Testo precedente all'ultima modifica
    
    If Val(Text1.Text) > Massimo Or Val(Text1.Text) < Minimo Then
      MsgBox "Il valore non rientra nei limiti impostati", vbExclamation
      If Len(ValoreCorretto) = 0 Then
        ValoreCorretto = Minimo
      End If
      Text1.Text = ValoreCorretto
      Text1.SelStart = Len(Text1.Text)
      Text1.SetFocus       'Risposta il focus su Text1
    End If
    ValoreCorretto = Text1.Text 'Reimposta il testo corretto
    End Sub
    Il controllo del valore l'ho inserito nella LostFocus per permettere l'intera scrittura del numero e solo in seguito, cioè con la perdita del focus , effettuare il controllo.
    Se hai altre domande... chiedi pure
    ... e non usare while wend è una sintassi deprecata

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    10
    uaho, lo provo subito, per il momento nn ho altre domande riguardo questo problema,forse ievitabilmente in futuro.... :cry
    Grazie ancora e a buon rendere anch se forse sono l'ultimo a cui chiedere aiuto nel vb

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 © 2026 vBulletin Solutions, Inc. All rights reserved.