IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

activer le clavier numérique


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Par défaut activer le clavier numérique
    bonjour tout le monde
    comment faire pour activer seulement le clavier numérique(ecriture dans textbox ou datagridview)

    merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Par défaut
    Bonjour,
    Je ne comprend pas ce que tu veux dire exactement par seulement le clavier numérique.
    Voici un petit exemple pour activer ou desactiver le clavier numérique en vb :
    Insérer dans un module de Classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    Option Explicit
     
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As _
                                                                     Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Private Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) _
                                              As Long
    Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As _
                                         Integer
    Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" _
                                           (ByVal wCode As Long, ByVal wMapType As Long) As Long
     
    Public Const VK_NUMLOCK = &H90
    Public Const VK_SCROLL = &H91
    Public Const VK_CAPITAL = &H14
    Private Const KEYEVENTF_EXTENDEDKEY = &H1
    Private Const KEYEVENTF_KEYUP = &H2
     
    Public Sub SetKeyState(ByVal Key As Long, ByVal State As Boolean)
     
        keybd_event Key, MapVirtualKey(Key, 0), KEYEVENTF_EXTENDEDKEY Or 0, 0
        keybd_event Key, MapVirtualKey(Key, 0), KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
        If Key = 20 And State = False Then
            keybd_event 16, 0, 0, 0
            keybd_event 16, 0, 2, 0
        End If
     
    End Sub
     
    Public Property Get CapsLock() As Boolean
        CapsLock = GetKeyState(VK_CAPITAL) = 1
    End Property
     
    Public Property Let CapsLock(ByVal Value As Boolean)
        SetKeyState VK_CAPITAL, Value
    End Property
     
    Public Property Get NumLock() As Boolean
        NumLock = GetKeyState(VK_NUMLOCK) = 1
    End Property
     
    Public Property Let NumLock(ByVal Value As Boolean)
        SetKeyState VK_NUMLOCK, Value
    End Property
     
    Public Property Get ScrollLock() As Boolean
        ScrollLock = GetKeyState(VK_SCROLL) = 1
    End Property
     
    Public Property Let ScrollLock(ByVal Value As Boolean)
        SetKeyState VK_SCROLL, Value
    End Property


    Dans un Module standard

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Option Explicit
     
    Sub Bouton1_QuandClic()
        If NumLock = False Then NumLock = True
    End Sub
     
    Sub Bouton2_QuandClic()
        If NumLock = True Then NumLock = False
    End Sub
    J'espère que cela pourra t'aider.
    A bientôt

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par sky88 Voir le message
    comment faire pour activer seulement le clavier numérique(ecriture dans textbox ou datagridview)
    Il faut gérer l'évènement KeyDown, et si la touche pressée n'est pas acceptée, mettre e.Handled à True pour qu'elle ne soit pas prise en compte. Il y a plein d'exemples sur le forum

  4. #4
    Membre éprouvé
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Par défaut
    merci à vous mais franchement je n'ai pas bien compris la solution que vous avez proposé

    et ce que je veux faire c'est dans un textbox n'autoriser que l'ecriture des chiffres ainsi que le séparateur décimal

    merci

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
        If e.KeyCode >= Keys.NumPad0 And e.KeyCode <= Keys.NumPad9 _
          Or e.KeyCode = Keys.Decimal Then
            ' OK, touche acceptée (rien à faire)
        Else
            ' Touche refusée
            e.Handled = True
        End If
    End Sub

  6. #6
    Membre éprouvé
    Inscrit en
    Mars 2008
    Messages
    1 123
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1 123
    Par défaut
    merci à vous mais ça ne marche pas par ce que avec ce code je peux écrire des lettre alphabétique

    merci

  7. #7
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    tu as juste copier ce code dans ton application sans rien changer?

    Sache que pour le textBox ou tu veux appliquer ce "truc" il faut que tu choisisses l'évenement keydown.
    tu auras des lors une fonction semblable a celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown
     
        End Sub
    l'important est le handles a la fin de cette fonction, il doit absolument avoir le nom de ton textBox.

    ensuite tu mets le code que tomlev t'a donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        If e.KeyCode >= Keys.NumPad0 And e.KeyCode <= Keys.NumPad9 _
          Or e.KeyCode = Keys.Decimal Then
            ' OK, touche acceptée (rien à faire)
        Else
            ' Touche refusée
            e.Handled = True
        End If
    je t'assure que ca fonctionne !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 22/07/2009, 21h40
  2. desactiver/activer touche clavier
    Par kamou dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 06/06/2007, 17h18
  3. Sqlwindows 4.2 touche + et - clavier numérique
    Par ccquick dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 30/03/2007, 15h48
  4. [VB6] Comment Désactiver et activer le clavier avec VB6
    Par filton dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/03/2006, 14h14
  5. Activer le paver numérique au démarrage de Windows
    Par Furius dans le forum Windows XP
    Réponses: 17
    Dernier message: 19/10/2005, 07h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo