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 :

commande SHIFT + TAB


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2011
    Messages : 66
    Points : 76
    Points
    76
    Par défaut commande SHIFT + TAB
    (Re) Bonjour,

    Je refais appel à vous, dans une nouvelle discussion car je penses que ca peut être utile à d'autres !
    Donc j'aurais aimé que lorsque l'utilisateur (novice) appuie sur F2 le curseur revienne au champ (TabIndex) précédent.
    Toujours pareil j'ai une base qui marche lors d'un KeyPress mais dans mon cas (KeyDown) ca ne fonctionne pas.
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
     
    Dim ctr3 As TextBox
            ctr3 = CType(sender, TextBox)
     
            If e.KeyCode = Keys.F2 Then
                Me.SelectNextControl(ctr3, False, True, True, True)
                Exit Sub
            End If
    End Sub
    Apparemment l'erreur se situe au niveau de ctr3 = CType(sender, TextBox). Une idée ?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    2 choses :

    - Tu déclares "ctr" et tu utilises "ctr3" (EDIT :corrigé apparemment)
    - Quand tu as ce genre d'erreur met un point d'arrêt et regarde ce qui ne va pas. Dans ce cas tu dis que l'erreur est sur la ligne Ctype, ce qui signifierais que ton sender n'est pas un textbox, avec un point d'arrêt + espion tu sauras quel est ton sender.

    De plus ta logique n'est pas bonne, si l'utilisateur fait F2 sur tout autre control qu'un textbox ça plantera, tu devrais en premier lieu regarder de quel type est ton sender, ainsi tu corrigeras ton erreur.

  3. #3
    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 : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Re,

    je te renvoie à notre précédente discussion.

    L'erreur vient bien de ce bout de code car ce n'est pas les textBox qui lèvent l’évènement mais ta Form1.

    Si tu voulais que se soit les textBox qui lèvent l’évènement il te faut reprendre le code de griftou.

    P.S. : L'utilisateur peut déjà dans Windows passer les contrôles en sens inverse avec MAJ + TAB, une petite phrase le précisent dans ton application serait peut-être mieux que d'habituer les utilisateurs à un autre raccourcis qui n'existera que dans ton application. (c'est juste ma façon de penser hein )

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    683
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 683
    Points : 1 187
    Points
    1 187
    Par défaut
    Bonsoir
    le mot clé Handles à la fin d'une déclaration de procédure, impose que le contrôle cité explicitement à sa suite est le seul à gérer l'événement.
    (On peut en désigner plusieurs).
    C'est ou se sont le ou les "sender".
    En l’occurrence, ici "sender" est donc le formulaire et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ctr3 = CType(sender, TextBox)
    Lèvera une exception, caster un Form en TextBox n'est pas impossible.

    Tout à fait d'accord avec Sankasssss et aussi le fait de désorienter l'utilisateur avec de nouveaux raccourcis.

    Néanmoins, cela reste faisable si Me.KeyPreview = True :

    - Si la touche appuyée est F2,
    - On récupère le contrôle actif,
    - si celui ci est de type TextBox... Alors action :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
     
            If e.KeyCode = Keys.F2 Then
                Dim ctr3 As Control
                ctr3 = Me.ActiveControl
     
                If TypeOf ctr3 Is TextBox Then
                    Me.SelectNextControl(ctr3, False, True, True, True)
                End If
            End If
     
        End Sub

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2011
    Messages : 66
    Points : 76
    Points
    76
    Par défaut
    Merci pour vos réponses !

    P.S. : L'utilisateur peut déjà dans Windows passer les contrôles en sens inverse avec MAJ + TAB, une petite phrase le précisent dans ton application serait peut-être mieux que d'habituer les utilisateurs à un autre raccourcis qui n'existera que dans ton application. (c'est juste ma façon de penser hein )
    En voulant faire simple il est vrai que je complique la chose
    Je prévois de faire une feuille explicative avec, pour que les utilisateurs comprennes facilement.

    asmduty je ne peux pas faire ce genre de test car je ne développe pas pour un pc mais pour une "sorte" de pistolet à code barre avec Windows Ce 5.0 dessus et je n'ai pas d'émulateur sur le PC !

    Merci à tous en tout cas.
    Super communauté.

  6. #6
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    @Sankasssss : chrismonoye répond à la question que je posais hier à savoir : "comment connaitre le contrôle dans lequel se trouve le user si on travaille avec la propriété keypreview ?".

    Ca va me changer la vie cette propriété ^^

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Citation Envoyé par Dewey12 Voir le message
    asmduty je ne peux pas faire ce genre de test car je ne développe pas pour un pc mais pour une "sorte" de pistolet à code barre avec Windows Ce 5.0 dessus et je n'ai pas d'émulateur sur le PC !
    pratique

  8. #8
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    M'enfin... Il y a quand même moyen quand on crée un projet de dire que c'est un projet pour WIN CE et il en tient compte quand on debuggue (ortho?) non ?

    J'avais un projet en C# quand j'étais encore à l'école pour un programme sur un robot (donc avec win ce) et on debuggait (ortho ?? firefox me propose budgétisait 0_0) très bien...

    Bref, tu dois pouvoir faire ce genre de tests dewey...

  9. #9
    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 : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Citation Envoyé par griftou Voir le message
    @Sankasssss : chrismonoye répond à la question que je posais hier à savoir : "comment connaitre le contrôle dans lequel se trouve le user si on travaille avec la propriété keypreview ?".

    Ca va me changer la vie cette propriété ^^
    De fait, bien plus facile en récupérant le contrôle actif

    P.S. : N'oublier pas de mettre +1 à la réponse de chrismonoye qui nous a aider, ca fait toujours plaisir d'arriver dans un topic où la réponse est en vert...

  10. #10
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    P.S. : N'oublier pas de mettre +1 à la réponse de chrismonoye qui nous a aider, ca fait toujours plaisir d'arriver dans un topic où la réponse est en vert...
    C'est vrai que je ne pense jamais à ce +1...
    Mais ça n'apparait de toute façon pas en vert chez moi. A moins de faire gaffe aux pouces sur chaque message, cela ne saute pas aux yeux.

  11. #11
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Citation Envoyé par griftou Voir le message
    C'est vrai que je ne pense jamais à ce +1...
    Mais ça n'apparait de toute façon pas en vert chez moi. A moins de faire gaffe aux pouces sur chaque message, cela ne saute pas aux yeux.
    ça apparait en vert à partir de 4 ou 5

  12. #12
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Citation Envoyé par asmduty Voir le message
    ça apparait en vert à partir de 4 ou 5
    A partir de 3 même. Il est en vert maintenant. Première fois que je vois ça sur ce forum ^^.

  13. #13
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2011
    Messages : 66
    Points : 76
    Points
    76
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown, Me.KeyDown
     
    If e.KeyCode = Keys.F2 Then
                Dim ctr3 As Control
                ctr3 = Me.ActiveControl
     
                If TypeOf ctr3 Is TextBox Then
                    Me.SelectNextControl(ctr3, False, True, True, True)
                End If
            End If
    Vu que je n'aime pas rester dans l'ignorance, il y a toujours une zone d'ombre pour moi (débutant dans ce langage )
    En dessus mon code, ou d'après ce que j'ai compris, j'ai ajouter "ME.keydown" au "Handles" mais il me trouve une erreur au niveau de "Me.ActiveControl" ...

    Désolé pour ma lenteur de compréhension mais on est tous passé par la

  14. #14
    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 : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Oui on est tous passé par là, c'est aussi pour cela que les membres s'entraide

    Tu n'est pas obligé de laisser les deux, laisse uniquement Me.KeyDown.

    Sinon pour ton erreur c'est bizarre car le code fonctionne chez moi.
    Pourrais-tu donner le texte de l'erreur?

    EDIT : Tu n'aurais pas oublié le end sub ???

  15. #15
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2011
    Messages : 66
    Points : 76
    Points
    76
    Par défaut
    Non désolé c'est le copier coller qui a loupé !

    Il me dis que :
    'ActiveControl' n'est pas un membre de 'MonProjet.Form1'
    Même chose si je met seulement "Me.KeyDown" :

    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
    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
            If e.KeyCode = Keys.F2 Then
                Dim ctr3 As Control
                ctr3 = Me.ActiveControl
                If TypeOf ctr3 Is TextBox Then
                    Me.SelectNextControl(ctr3, False, True, True, True)
                End If
            End If
     
            If e.KeyCode = Keys.F6 Then
                'Ferme le programme
                Me.Close()
                Exit Sub
            End If
     
        End Sub
    Merci pour t'as compréhension

    EDIT : La touche F6 fonctionne bien.

  16. #16
    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 : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Tu as quoi comme Visual Studio? (Pour savoir quelle version du framework tu utilises)
    car vu sur MSDN :
    .NET Framework
    Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0

    .NET Framework Client Profile
    Pris en charge dans : 4, 3.5 SP1
    Donc il n'est pris qu'a partir du FrameWork 3.5 SP1 en client Profile...

  17. #17
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2011
    Messages : 66
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    Tu as quoi comme Visual Studio? (Pour savoir quelle version du framework tu utilises)
    J'utilise VS 2008 avec le framework 3.5 pour le client !
    SP1 (je ne pense pas) mais si ça peut t'aider le fichier d'installation du framework ce nomme "NETCFv35.wce.armv4"
    C'est la version qu'il me faut pour le type de client (pistolet teklogix 7535 G2)

    Sinon c'est pas grave je ferais sans

    Merci en tout cas, je dormirais moins con ou plus intelligent....
    Bonne soirée à vous,

  18. #18
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Ce n'est pas le compact framework ?
    Il me semble que tu as signalé que tu développais pour WIN CE non ?

  19. #19
    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 : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Citation Envoyé par griftou Voir le message
    Ce n'est pas le compact framework ?
    Il me semble que tu as signalé que tu développais pour WIN CE non ?
    Si c'est bien le compact framework (recherche NETCFv35.wce.armv4)

    Mais je n'ai aucune connaissance dedans et je ne sais pas où l'on voit si une fonction en fait partie dans MSDN mais une rapide rehcerche dans google comble ce défaut : compact framework ActiveControl - Google zoeken

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

Discussions similaires

  1. Code Java de la commande CTRL + SHIFT + M
    Par titanic3d dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 25/04/2012, 20h25
  2. [C#] SourceGrid : pas de shift+tab ?
    Par annalady dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/05/2006, 18h48
  3. Gérer le ALT-TAB ?
    Par Magus (Dave) dans le forum DirectX
    Réponses: 15
    Dernier message: 04/01/2004, 01h43
  4. OnKeyDown avec TAB et SHIFT TAB
    Par StarMusic dans le forum Composants VCL
    Réponses: 2
    Dernier message: 18/12/2003, 13h21
  5. Réponses: 3
    Dernier message: 02/09/2002, 19h49

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