Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19
  1. #11
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    e se volessi accettare anke il punto e virgola nel testo dove metto i numeri ?

  2. #12
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Per XVincentX.
    Sara anche semplice, ma il codice che hai postato, nel caso d'inserimento di una parte NON numerica cancella tutto quello che è stato inserito, e NON la sola parte non numerica.
    LM

  3. #13
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    254
    Non è assolutamente vero, azzera solo il carattere ultmo digitato
    che semplicemente non viene riportato nel controllo.
    Non c'è lo sbiancamento del controllo, per cui quello
    precedentemente inserito RIMANE.

  4. #14
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Guardache LMondi si riferiva a :
    codice:
    private sub text1_change()
        if not isnumeric(text1.text) then
            text1.text = ""
        end if
    end sub
    e non a

    codice:
    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
    Se, però utilizzi l'intercettazione del tasto (_KeyPress) allora
    devi prendere in considerazione quanto ti dice yyzyyz sui punti e
    virgole, e quello che, giustamente, ti evidenzia xegallo, sul fatto
    che devi gestire anche l'eventuale copia+incolla, tranite l'evento
    _Change.

    Ciao,
    Ciao, Brainjar

  5. #15
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    254
    ok.

  6. #16
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    ke ne pensate di questa soluzione? :master:
    codice:
    Private Sub text1_change()
        Dim txtlen As Double
        On Error Resume Next
        If Not IsNumeric(Text1.Text) Then
            txtlen = Len(Text1.Text) - 1
            Text1.Text = Mid(Text1.Text, 1, txtlen)
            Text1.SelStart = txtlen + 1
        End If
    End Sub

  7. #17
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Sei punto e a capo. Con copia ed incolla inserisci una frase
    da 50 lettere. Dopo il controllo te ne restano 49.

    La soluzione deve essere sicuramente più sofisticata.

    Ciao,
    Ciao, Brainjar

  8. #18
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Ciedo scusa per la svista.
    La funzione

    codice:
    Private Sub text1_change()
        Dim txtlen As Double
        On Error Resume Next
        If Not IsNumeric(Text1.Text) Then
            txtlen = Len(Text1.Text) - 1
            Text1.Text = Mid(Text1.Text, 1, txtlen)
            Text1.SelStart = txtlen + 1
        End If
    End Sub
    Ha un comportamento 'ricorsivo', quindi va benissimo.

    Grande.

    Ciao,
    Ciao, Brainjar

  9. #19
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Và alla grande. Complimenti !
    LM

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.