none
Saisies numèriques ou alphabtiques RRS feed

  • Question

  • Bonjour à tous, dans une textBox, je souhaiterai interdire la saisie des lettres de l'alphabet et n'autoriser que du numérique, et dans une autre textBox l'inverse. J'avais déjà posé cette question il y a un peu plus d'un an et avais eu la réponse. Mais suite à une maladie j'ai pas fais attention et j'ai viré mon programme de "Numérologie" de 8000 lignes. Comme je suis en retraite et de nouveau en bonne santé..... Je recommence. Merci d'avance et bon week-end à tous

    vendredi 23 février 2018 05:26

Toutes les réponses

  • Bonjour Jean-Luc Follin,

    Je vous invite à consulter le thread suivant :
    Restrict TextBox to only certain characters, numeric or symbolic

    Cordialement,
    Teodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    vendredi 23 février 2018 13:55
    Modérateur
  • Une des méthodes avec une API du Shell =>

    Public Enum HRESULT As Integer
        S_OK = 0
        S_FALSE = 1
        E_FAIL = &H80004005
    End Enum
    
    <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
    Public Structure LIMITINPUT
        Public cbSize As Integer
        Public dwMask As Integer
        Public dwFlags As Integer
        Public hinst As IntPtr
        Public pszFilter As IntPtr
        Public pszTitle As IntPtr
        Public pszMessage As IntPtr
        Public hIcon As IntPtr
        Public hWndNotify As IntPtr
        Public nTooltipTimeout As Integer
        Public nTooltipWidth As Integer
    End Structure
    
    Public Const LIM_FLAGS As Integer = &H1
    Public Const LIM_FILTER As Integer = &H2
    Public Const LIM_HINST As Integer = &H8
    Public Const LIM_TITLE As Integer = &H10
    Public Const LIM_MESSAGE As Integer = &H20
    
    Public Const LIF_INCLUDEFILTER As Integer = &H0
    Public Const LIF_EXCLUDEFILTER As Integer = &H1
    Public Const LIF_CATEGORYFILTER As Integer = &H2
    Public Const LIF_HIDETIPONVALID As Integer = &H200
    
    Public Const LICF_UPPER As Integer = &H1
    Public Const LICF_LOWER As Integer = &H2
    Public Const LICF_DIGIT As Integer = &H4
    Public Const LICF_SPACE As Integer = &H8
    Public Const LICF_PUNCT As Integer = &H10
    Public Const LICF_CNTRL As Integer = &H20
    Public Const LICF_BLANK As Integer = &H40
    Public Const LICF_XDIGIT As Integer = &H80
    Public Const LICF_ALPHA As Integer = &H100
    
    <DllImport("Shell32.dll", SetLastError:=True, CharSet:=CharSet.Auto, EntryPoint:="#754")>
    Public Shared Function SHLimitInput(hWndEdit As IntPtr, ByRef pli As LIMITINPUT) As HRESULT
    End Function
    
    WithEvents TextBox1 As New TextBox
    WithEvents TextBox2 As New TextBox
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        With TextBox1
            .Size = New Drawing.Size(240, 32)
            .Location = New Drawing.Point(20, 40)
            .Name = "TextBox1"
        End With
        Me.Controls.Add(TextBox1)
    
        Dim li As LIMITINPUT = New LIMITINPUT()
        li.cbSize = Marshal.SizeOf(li)
        li.dwMask = LIM_FLAGS Or LIM_FILTER Or LIM_MESSAGE
        li.dwFlags = LIF_CATEGORYFILTER Or LIF_HIDETIPONVALID
        li.pszFilter = LICF_DIGIT
        li.pszMessage = Marshal.StringToHGlobalAuto("Digit only")
        Dim hr As HRESULT = SHLimitInput(TextBox1.Handle, li)
    
        With TextBox2
            .Size = New Drawing.Size(240, 32)
            .Location = New Drawing.Point(20, 80)
            .Name = "TextBox2"
        End With
        Me.Controls.Add(TextBox2)
    
        li.pszFilter = LICF_ALPHA
        li.pszMessage = Marshal.StringToHGlobalAuto("Alpha only")
        hr = SHLimitInput(TextBox2.Handle, li)
    End Sub


    vendredi 23 février 2018 14:25
  • Super, merci à tous.

    vendredi 23 février 2018 16:41
  • 
    
    Super, excellent. Merci
    vendredi 23 février 2018 16:41