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 :

Ecrire un texte en appuyant sur une touche


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Ecrire un texte en appuyant sur une touche
    Bonjour ,j'aimerais qu'en appuyant sur une touche sélectionner avant , cela écrive un texte lui aussi sélectionner juste avant en gros on choisi un texte avec une checkbox et la touche avec une combobox que je recupére avec des variable ,mais le soucis c'est le code que j'utilise pour écrire le texte puis appuyer sur "Entrer" ne marche que dans la fenêtre et hors de celle ci ,le texte s'écris mais "entrer" n'est pas presser ,et j'aimerais bien que le texte ne soit écrit qu'une seule fois ce que je n'arrive pas non plus à faire ,pour l'instant j'ai sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      Private Sub write()
            If My.Computer.Keyboard.AltKeyDown Then 'pour la touche Alt
                chkt2 = chkt 'chkt le text de la checkbox
                                  'je sait pas pourquoi mais si je n'écris pas chkt2 = chkt (et seulement chkt) qui sont tout les deux définit en string enter ne marche nulle part
                SendKeys.SendWait(chkt2 & chr(13))
            End If
        End Sub
     
        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
                    Select touche
                Case "ALT"
                    write()
            End Select
        End Sub
    et je ne sait pas par quoi remplacer le timer (je veux que le texte s'écrive 1 seule fois a chaque fois qu'on appuie sur ALT (dans ce cas)

    voila voila en espérant que quelqu'un pourra m'aider ^^

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 256
    Points : 290
    Points
    290
    Par défaut
    Bonjour à vous,

    Pour remplacer la touche entrée, vous pouvez utiliser String enter = Environment.NewLine;

    Sinon pour votre problème de répétition avec la touche alt, vous pouvez placer un booléen indiquant si le texte à déjà été écrit ou non

  3. #3
    Membre expérimenté
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Points : 1 454
    Points
    1 454
    Billets dans le blog
    9
    Par défaut
    tu dois utilisé KeyPress ou Keydown cliquer ici

  4. #4
    Membre averti Avatar de The_Big_Lebowski
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 225
    Points : 304
    Points
    304
    Par défaut
    Bonjour,
    Où veux-tu écrire ton texte ?

    Chaque contrôle (ou presque) expose un événement keyPress.
    Le principe est de déterminer sur quel contrôle tu devras appeler ta procédure Write()

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Edit : j'ai réussi a simuler l'appuie sur entrer en me débrouiller avec "Chr" donc de ce coté la c'est bon mais le coté n'écrire le texte qu'une fois je n'y arrive toujours pas et je ne sais pas par quoi rempacer mon timer :/

    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
     'Writter
        Dim chkt2 As String
        Private Sub write()
                chkt2 = chkt
                SendKeys.SendWait(chkt2 & Chr(10))
                Timer1.Stop()
        End Sub
     
        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
            Select Case touche
                Case "ALT"
                    If My.Computer.Keyboard.AltKeyDown Then
                        write()
                    End If
            End Select
        End Sub

  6. #6
    Membre averti Avatar de The_Big_Lebowski
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 225
    Points : 304
    Points
    304
    Par défaut bug
    ...

  7. #7
    Membre averti Avatar de The_Big_Lebowski
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 225
    Points : 304
    Points
    304
    Par défaut
    Peut-être une variable Static.
    Un flag (.tag) sur le contrôle sur lequel tu écris.
    Une collection, ...
    Combien de textes différents peux-tu écrire ?
    10 développeurs, 10 façons d'aborder le problème.
    Sans plus de connaissance sur ce que tu veux faire exactement, le problème reste entier.

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Citation Envoyé par Hamsterfurtif Voir le message
    Edit : j'ai réussi a simuler l'appuie sur entrer en me débrouiller avec "Chr" donc de ce coté la c'est bon mais le coté n'écrire le texte qu'une fois je n'y arrive toujours pas et je ne sais pas par quoi rempacer mon timer :/
    Il faut peut-être vider la variable touche.
    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
        Dim chkt2 As String
        Private Sub write()
                chkt2 = chkt
                SendKeys.SendWait(chkt2 & Chr(10))
                ' pourquoi arrêter le timer ???  Timer1.Stop()
        End Sub
     
        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
            Select Case touche
                Case "ALT"
                    If My.Computer.Keyboard.AltKeyDown Then
                        write()
    touche = Nothing
                    End If
            End Select
        End Sub
    Pour ne pas utiliser de timer, il nous faut plus d'information sur l'utilisation de la variable "touche" et ce que tu souhaites faire d'une façon générale. (comme le fait remarquer "The_Big_Lebowski")
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bon ,au final j'ai raccourci le code qui pose problème (grâce à vos conseil) et il maintenant un peu plus clair (j'ai enlevé les variables inutiles , etc ...)
    donc le texte en fait c'est tout simplement une variable string qui est égale au texte de la checkbox actuellement coché (c'est la variable chkt dans mon code) j'ai rajouté chkt2 = chkt car sans sa le code ne marche pas (étrange sachant que les deux variable sont définit en string)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
            If My.Computer.Keyboard.AltKeyDown Then
                chkt2 = chkt
                SendKeys.SendWait(chkt2 & Chr(10))
                Exit Sub
            End If
        End Sub
    Donc il me reste plus que le soucis du timer que je ne sait pas par quoi remplacer en espérant qui soit remplaçable (j'ai essayé pas mal de chose mais sa reviens toujours à faire une boucle)
    PS: The_Big_Lebowski qu'est ce qu'une variable static ou un flag ?
    PSS: charouel je n'ai pas réussi à appliqué ton idée d'utiliser keypress.
    Bon j’espère que cette fois je vous aurait donné tout les informations dont vous avez besoin =) (si il y'a besoin d'une plus grande partit du code comme les variables ,etc j’essaierai de les rajouter le plus vite possible)

  10. #10
    Membre averti Avatar de The_Big_Lebowski
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2009
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 225
    Points : 304
    Points
    304
    Par défaut
    Une variable Static est une variable qui garde sa valeur même lorsqu'on sort de la procédure dans laquelle elle est déclarée.
    Un flag sous entend une variable Booléenne. Elle te permettra de vérifier si elle est à TRUE ou FALSE si ton texte à déjà été écrit ou non (par exemple).
    Le choix du timer me semble erroné.
    Dans ton cas, j'aurais fait appel à la procédure Write() sur l'évènement keyPress ou keyDown (à vérifier) du contrôle sur lequel tu veux écrire.
    RAPPEL: Il vaut mieux garder une procédure spécifique pour l'écriture de ton texte et l'appeler sur les différents contrôles qui pourraient l'invoquer plutôt qu'écrire ton code sur l'événement

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    ok bah merci pour tes conseil ,je pense que je devrait pouvoir me débrouillé pour la suite et encore merci sa faisait une petit moment que je planché la dessus

Discussions similaires

  1. Arrêter une temporisation en appuyant sur une touche
    Par Climoo dans le forum x86 16-bits
    Réponses: 4
    Dernier message: 10/01/2008, 15h35
  2. Réponses: 12
    Dernier message: 25/08/2006, 13h44
  3. Activer un bouton en appuyant sur une touche du clavier
    Par brasco06 dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 16/02/2006, 23h47
  4. Changer de texture en appuyant sur une touche
    Par Hyoga dans le forum OpenGL
    Réponses: 1
    Dernier message: 29/01/2005, 23h36
  5. Réponses: 15
    Dernier message: 28/01/2005, 04h46

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