Me_KeyPress et touche Enter [Résolu]

Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011
- - Dernière réponse : Taur33
Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011
- 17 janv. 2011 à 13:22
Bonjour,
Voilà je fais une calculatrice genre celle de Windows donc j'empeche le focus de pouvoir rentrer dans le textbox par :
 ' Interdit le RichTextBox d'avoir le focus
    Private Sub RTB1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles RTB1.Enter

        RectangleShape2.Focus()

    End Sub

Mon probleme c'est quand l'utilisateur appuie sur Enter(Me_Keypress n'agit pas):
 ' Gestion des touches autorisées
    Public Sub Me_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress

        Select Case Asc(e.KeyChar)

                ' l'utilisateur appuie sur "Back(<--)"
                ' pas de raccourci
            Case 8
                Back() 'voir Sub Back() 
           
             'l'utilisateur appuie sur "=" 
                'raccourci clavier "&="
                '(ou "Entrée")
            Case 13

                Egal() ' voir Sub Egal()


        End Select


    End Sub

l'appui sur Back marche mais pas Enter
Si quelqu'un sait pourquoi ?

Merci d'avance
Afficher la suite 

20/25 réponses

Meilleure réponse
Messages postés
553
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
3
Merci
Je pense que le problème venait du rectangle a couleur dégradé.
Enfin... sa fonctionne, voila:

MODIFICATION DU Sub FrmMain_Load:
Tu met le preview a la fin ainsi que le addhandler.
        Private Sub FrmMain_Load(...)
        ...
        'Active clavier + Evenement touches push
        Me.KeyPreview =   True
        AddHandler Me.KeyPress, AddressOf KeyOK
    End Sub


RAJOUTE POUR TA FORM:
    Private Sub frmMain_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
        Me.RectangleShape2.Focus()
    End Sub


RAJOUTE LOSTFOCUS:
    ' Interdit le RichTextBox d'avoir le focus
    Private Sub RTB1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles RTB1.Enter
        RectangleShape2.Focus()
    End Sub
    Private Sub RTB1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles RTB1.LostFocus
        RectangleShape2.Focus()
    End Sub


RAJOUTE LE RECTANGLE FOCUS A LA FIN:
DU Sub KeyOK() et aussi Sub Button_Click()
    ' Gestion des touches
    Private Sub KeyOK(...)
        ...
        RectangleShape1.Focus()
    End Sub

    ' Gestion des clicks
    Private Sub Button_Click(...)
        ...
        RectangleShape1.Focus()
    End Sub



SIGNATURE:


- = ^^ ZOOM IT ^^ =-

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Duke49
Messages postés
553
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
0
Merci
trouvé en 5 minutes en trifouillant ^^

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler TextBox1.KeyPress, AddressOf KeyOK

    End Sub

    Private Sub KeyOK(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim MyPush As System.Windows.Forms.KeyPressEventArgs = e
        Dim MyASC As Integer = AscW(MyPush.KeyChar)

        Select Case MyASC
            Case 8 'BACKSPACE
                Me.Text = "BACKSPACE PRESSED"
            Case 13 'RETURN
                Me.Text = "RETURN PRESSED"
            Case Else
                Me.Text = "ASC(" & e.ToString & ") PRESSED"
        End Select
    End Sub
Commenter la réponse de Duke49
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46
0
Merci
Chez moi ça marche
Mets un point d'arret à la ligne
Case 13
Commenter la réponse de cs_ShayW
Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011
0
Merci
Mets un point d'arret à la ligne

Case 13





çà ne s'arrete pas ca passe par :
 Private Sub Button_Click(ByVal eventSender As Object, ByVal eventArgs As System.EventArgs) Handles Button.Click
        Dim index As Short = Button.GetIndex(CType(eventSender, Windows.Forms.Button))


et duke49 :TextBox1.KeyPress ton code c'est pour les evenements clavier au niveau du textbox,non ? moi ce serait au niveau du form
Commenter la réponse de Taur33
Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011
0
Merci
ca fait comme si je cliquait sur le bouton "1" de ma calculette.
Commenter la réponse de Taur33
Messages postés
553
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
0
Merci
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.KeyPreview = True
        AddHandler Me.KeyPress, AddressOf KeyOK
    End Sub

    Private Sub KeyOK(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim MyPush As System.Windows.Forms.KeyPressEventArgs = e
        Dim MyASC As Integer = AscW(MyPush.KeyChar)

        Select Case MyASC
            Case 49 'BOUTON chiffre 1
                Button1_Click(sender, e)
            Case 8 'BACKSPACE
                Me.Text = "BACKSPACE PRESSED"
            Case 13 'RETURN
                Me.Text = "RETURN PRESSED"
            Case Else
                Me.Text = "ASC(" & e.ToString & ") PRESSED"
        End Select
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.Text = "BOUTON CHIFFRE 1 PRESSED"
    End Sub
Commenter la réponse de Duke49
Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011
0
Merci
ok merci duke49 je vais essayer ton code
Commenter la réponse de Taur33
Messages postés
553
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
0
Merci
Jte demande qu'un truc en retour...
Si sa fonctionne clique sur "Réponse accepté"
++
Commenter la réponse de Duke49
Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011
0
Merci
cela ne fonctionne tjrs pas
ca passe toujours par la procedure Button_click
j'ai un truc bizarre j'ai changé rectangle2shape.focus() par Me.focus() cela ne marchait pas j'ai remis rectangleshape.focus() puis le code a fonctionné 1 fois puis plus du tout
Commenter la réponse de Taur33
Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011
0
Merci
le probleme vient bien du focus si le focus est dans mon RichTextbox ca marche
mais je dois interdire au RichTextbox de l'avoir comme la calculette de windows
Comment faire ?
Commenter la réponse de Taur33
Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011
0
Merci
Si je tape 5+5 puis Enter ca ne marche pas
par contre si je tape 5+5 puis je click sur le RichTextBox(sans pouvoir y entrer)et que la j'appuie sur Enter cela fonctionne bien
Commenter la réponse de Taur33
Messages postés
553
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
0
Merci
Si l'evenement RichTextBox_LostFocus alors RichTextBox.Setfocus
Commenter la réponse de Duke49
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46
0
Merci
il manque des précisions

Si je tape 5+5 puis Enter ca ne marche pas

où ? quel évenement keypress de la form
un textbox ?
qu'il y a t'il sur ta form ?
Quand tu lances le prog le curseur est dans le richtextbox ?
Commenter la réponse de cs_ShayW
Messages postés
553
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
0
Merci
tu aurais besoin de développer tes méthodes en prog...
Inspire toi de ce projet:
http://www.vbfrance.com/code.aspx?ID=31038
Commenter la réponse de Duke49
Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011
0
Merci
duke49 en effet les méthodes semblent interessantes sur cette calculette.Je verrais
tout ça
shayW :Mon form c'est exactement la calculatrice Windows pour ainsi dire donc quand l'utlisateur appuie sur Enter les evenements sont bien gérés au niveau du form
et quand je lance ou utilise le prog il n'y a aucun focus dans mon RichTextBox
J'ai utlisé le code que m'a donné duke(voir messages précédents) et comme je l'ai dit il faut que je clique sur le RichTextbox, action qui active ceci :
  ' Interdit le RichTextBox d'avoir le focus
    Private Sub RTB1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles RTB1.Enter

        RectangleShape2.Focus()
    End Sub

puis le KeyOK donc la prise en compte de la touche enter.
Si je ne clique pas sur le RichTextbox KeyOK n'est pas pris en compte, donc Enter inactif
Commenter la réponse de Taur33
Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011
0
Merci
c'est quand meme curieux que le back lui fonctionne et pas le Enter
On dirait que le RichTextbox a toujours la prorite sur le form pour la touche Enter
Commenter la réponse de Taur33
Messages postés
553
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
0
Merci
Je ne savais même pas qu'on pouvais accorder un focus vers une shape ^^
Remplace rectangleshape.focus par maform.focus = true
Commenter la réponse de Duke49
Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011
0
Merci
j'ai déja essayé
j'ai un truc bizarre j'ai changé rectangle2shape.focus() par Me.focus() cela ne marchait pas j'ai remis rectangleshape.focus() puis le code a fonctionné 1 fois puis plus du tout
Commenter la réponse de Taur33
Messages postés
553
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
0
Merci
Si ton code à fonctionné 1 fois c'est qu'il a eut le focus qu'une fois.
Alors pourquoi ne pas réfléchir a l'évènement LostFocus ?
Commenter la réponse de Duke49
Messages postés
85
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
20 mai 2011
0
Merci
comment a fait Microsoft pour programmer la touche enter sur leur calculatrice WINDOWS ?
Y'aurais pas moyen d'avoir le code source de leur calculette?
Commenter la réponse de Taur33