Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: [vb8]text box numerica

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    11

    [vb8]text box numerica

    innanzitutto grazie a tutti quelli che mi risponderanno,
    allora io dovrei creare una textbox dove l'utente possa inserire solo numeri,io ho provato così:

    Private Sub Textbox1_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress Dim KeyAscii As Short = Asc(eventArgs.KeyChar) If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then KeyAscii = 0 Beep() End If eventArgs.KeyChar = Chr(KeyAscii) If KeyAscii = 0 Then eventArgs.Handled = True End If End Sub
    ma così non mi prende il carattere "," e non mi fa usare il tasto backspace

    qualcuno sa come posso fare in modo che possa inserire anche la "," e usare il back space

    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di StegcO
    Registrato dal
    Aug 2008
    Messaggi
    371
    codice:
    IF IsNumeric(NomeTextBox.Text) = False Then
       MsgBox "Non hai inserito un valore numero.", vbOkOnly, "Errore"
       NomeTextBox.SetFocus
       Exit Sub
    End If
    così no?

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    11
    ciao grazie ma vb mi dice che setfocus non è un membro di system.windows.forms.textbox
    cosa dovrei fare

  4. #4
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Quello postato da StegcO è codice VB6.

    Prova in questo modo:

    codice:
        Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            Dim bInvalid As Boolean
            If IsNumeric(e.KeyChar) Then
                bInvalid = False
            Else
                Select Case Asc(e.KeyChar)
                    Case 46
                        If TextBox1.Text.IndexOf(e.KeyChar) >= 0 Then
                            bInvalid = True
                        End If
                    Case 8
                        bInvalid = False
                    Case Else
                        bInvalid = True
                End Select
            End If
            e.Handled = bInvalid
        End Sub
    Ho fatto in modo che possa accettare solo caratteri numerici e il punto (una sola volta).
    Funziona anche il BackSpace, ma tutti gli altri caratteri sono esclusi.

    Se hai bisogno della virgola anzichè del punto, basta cambiare il corrispondente codice Ascii nella Select Case

    Boolean

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    11
    grazie lo stesso, mo ho già risolto così:
    ho fatto una funzione che verifichi il tasto
    codice:
     
    Public Function CheckKeyPressed(ByVal sKey As Char) As Char
        Dim KeyAscii As Short = Asc(sKey)
        If KeyAscii < 32 Then
            Return sKey
        Else
            If InStr("0123456789,", sKey) > 0 Then
                Return sKey
            Else
                Return ""
            End If
        End If
    End Function
    e poi l'ho usata così:

    codice:
     
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        Dim KeyChar As Char = CheckKeyPressed(e.KeyChar)
        If KeyChar = Nothing Then e.KeyChar = Nothing
    End Sub

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    759
    ho fatto una funzione che verifichi il tasto
    "ho fatto" mi sembra un po' eccessivo.
    (vedere qui)

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    11
    si lo so che ho fatto e eccessivo
    ma non sapevo come esprimermi

  8. #8
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Sarebbe bastato dire che su un altro forum, l'utente tizio ti aveva fornito questa soluzione.

    Boolean

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    11
    ai ragione non c'avevo pensato

    mi dispiace
    grazie per la comprensione

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Un consiglio:
    è sbagliato postare su più forum contemporaneamente, alla fine si fa perdere tempo alle persone nel rispondere ad un qualcosa a cui... è già stato risposto da un'altra parte .

    Questo per rispetto di chi perde tempo a rispondere sui forum nel tentativo di aiutare gli altri; mettersi nei panni degli altri, aiuta a capire queste cose...

    Il comportamente corretto sarebbe quello di postare su UN solo forum. Se poi su questo non si trova la soluzione, allora provo su un'altro.

    Altrimenti, come accade a me , ci si stanca di aiutare perchè si pensa, a ragion veduta:
    "Tanto gli risponderanno da qualche altra parte... "

    Ormai li conosciamo chi ha il vizio del "cross-forum"...
    Eh, eh, il mondo è piccolo!!!

    Ciao

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.