Me_KeyPress et touche Enter

Résolu
Taur33 Messages postés 85 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 20 mai 2011 - 16 janv. 2011 à 12:39
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

25 réponses

Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
17 janv. 2011 à 11:50
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 ^^ =-
3
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
16 janv. 2011 à 13:07
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
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
16 janv. 2011 à 13:09
Chez moi ça marche
Mets un point d'arret à la ligne
Case 13
0
Taur33 Messages postés 85 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
16 janv. 2011 à 13:32
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Taur33 Messages postés 85 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
16 janv. 2011 à 13:45
ca fait comme si je cliquait sur le bouton "1" de ma calculette.
0
Taur33 Messages postés 85 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
16 janv. 2011 à 14:16
ok merci duke49 je vais essayer ton code
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
16 janv. 2011 à 14:18
Jte demande qu'un truc en retour...
Si sa fonctionne clique sur "Réponse accepté"
++
0
Taur33 Messages postés 85 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
16 janv. 2011 à 14:32
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
0
Taur33 Messages postés 85 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
16 janv. 2011 à 14:47
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 ?
0
Taur33 Messages postés 85 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
16 janv. 2011 à 17:39
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
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
16 janv. 2011 à 17:56
Si l'evenement RichTextBox_LostFocus alors RichTextBox.Setfocus
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
16 janv. 2011 à 18:01
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 ?
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
16 janv. 2011 à 18:16
tu aurais besoin de développer tes méthodes en prog...
Inspire toi de ce projet:
http://www.vbfrance.com/code.aspx?ID=31038
0
Taur33 Messages postés 85 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
16 janv. 2011 à 19:50
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
0
Taur33 Messages postés 85 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
16 janv. 2011 à 20:47
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
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
16 janv. 2011 à 21:17
Je ne savais même pas qu'on pouvais accorder un focus vers une shape ^^
Remplace rectangleshape.focus par maform.focus = true
0
Taur33 Messages postés 85 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
16 janv. 2011 à 21:57
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
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
16 janv. 2011 à 22:02
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 ?
0
Taur33 Messages postés 85 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 20 mai 2011
16 janv. 2011 à 22:02
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?
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
16 janv. 2011 à 22:20
Envoie moi ta source par email !
Ma BA d'la journée !

Tu vas sur mon profil, tu clique sur mon site internet, tu rentre sur
mon site internet et clique sur Contacter Duke49.
0
Rejoignez-nous