Bonjour,
J'intercepte les évènements KeyPress, KeyDown avec un
system.windows.form.Control que j'ai ajouté sur une Form. Le
Form.KeyPreview=False.
Les touches de direction ne déclenchent pas KeyDown, mais déplacent le focus
sur les autres control de la feuille, comme la touche TAB. Les autres
touches sont pourtant bien détectées : PgUP, PgDN, Insert, etc.
J'aimerai détecter ces touches dans le Keydown.
Quelqu'un sait-il ce qui se passe ?
Voici le code pour test:
'Un nouveau control pour ma feuille
Private WithEvents MyCTRL As New Control
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
'J'ajoute un control sur ma feuille
Me.Controls.Add(MyCTRL)
MyCTRL.Location = New Point(50, 50)
MyCTRL.Size = New Size(100, 100)
MyCTRL.BackColor = Color.Azure
MyCTRL.Visible = True
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyCTRL.Click
'Je redonne le Focus à mon control, car il
'le perd avec les flèches de direction.
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles MyCTRL.KeyDown
Beep()
Label1.Text = "Keydown"
End Sub
Private Sub MyCTRL_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles MyCTRL.KeyPress
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gilles TOURREAU
Le Fri, 30 Nov 2007 08:23:07 +0100, Jean-Noël a écrit:
Bonjour, J'intercepte les évènements KeyPress, KeyDown avec un system.windows.form.Control que j'ai ajouté sur une Form. Le Form.KeyPreviewúlse.
Les touches de direction ne déclenchent pas KeyDown, mais déplacent le focus sur les autres control de la feuille, comme la touche TAB. Les autres touches sont pourtant bien détectées : PgUP, PgDN, Insert, etc.
J'aimerai détecter ces touches dans le Keydown. Quelqu'un sait-il ce qui se passe ?
Voici le code pour test: 'Un nouveau control pour ma feuille
Private WithEvents MyCTRL As New Control
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'J'ajoute un control sur ma feuille
Me.Controls.Add(MyCTRL)
MyCTRL.Location = New Point(50, 50)
MyCTRL.Size = New Size(100, 100)
MyCTRL.BackColor = Color.Azure
MyCTRL.Visible = True
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyCTRL.Click
'Je redonne le Focus à mon control, car il
'le perd avec les flèches de direction.
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyCTRL.KeyDown
Beep()
Label1.Text = "Keydown"
End Sub
Private Sub MyCTRL_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyCTRL.KeyPress
Beep()
Label1.Text = "Keypress"
End Sub
Merci.
Voilà qui est beaucoup plus clair...
En fait par défaut les touches Down et Up sont interceptées par Control, mais elle ne déclenche pas les événement KeyDown (tout simplement parceque par défaut sous Windows la touche Up et Down fait passer le focus à un autre contrôle).
Si vous souhaitez traiter cette touche comme une saisie normale, traiter l'événement PreviewKeyDown, et dans la méthode traitant cette événement, si vous obtenez la touche Up ou Down affectez True à e.IsInputKey = True. Vous considérez ainsi que les touches Up et Down sont des touches de "saisies normales" et elles déclencheront l'événement KeyDown, KeyPress et KeyUp...
Cordialement
-- Gilles TOURREAU
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Le Fri, 30 Nov 2007 08:23:07 +0100, Jean-Noël
<jean-noel.falquet@wanadoo.fr> a écrit:
Bonjour,
J'intercepte les évènements KeyPress, KeyDown avec un
system.windows.form.Control que j'ai ajouté sur une Form. Le
Form.KeyPreviewúlse.
Les touches de direction ne déclenchent pas KeyDown, mais déplacent le
focus
sur les autres control de la feuille, comme la touche TAB. Les autres
touches sont pourtant bien détectées : PgUP, PgDN, Insert, etc.
J'aimerai détecter ces touches dans le Keydown.
Quelqu'un sait-il ce qui se passe ?
Voici le code pour test:
'Un nouveau control pour ma feuille
Private WithEvents MyCTRL As New Control
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
'J'ajoute un control sur ma feuille
Me.Controls.Add(MyCTRL)
MyCTRL.Location = New Point(50, 50)
MyCTRL.Size = New Size(100, 100)
MyCTRL.BackColor = Color.Azure
MyCTRL.Visible = True
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyCTRL.Click
'Je redonne le Focus à mon control, car il
'le perd avec les flèches de direction.
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles MyCTRL.KeyDown
Beep()
Label1.Text = "Keydown"
End Sub
Private Sub MyCTRL_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles MyCTRL.KeyPress
Beep()
Label1.Text = "Keypress"
End Sub
Merci.
Voilà qui est beaucoup plus clair...
En fait par défaut les touches Down et Up sont interceptées par Control,
mais elle ne déclenche pas les événement KeyDown (tout simplement parceque
par défaut sous Windows la touche Up et Down fait passer le focus à un
autre contrôle).
Si vous souhaitez traiter cette touche comme une saisie normale, traiter
l'événement PreviewKeyDown, et dans la méthode traitant cette événement,
si vous obtenez la touche Up ou Down affectez True à e.IsInputKey = True.
Vous considérez ainsi que les touches Up et Down sont des touches de
"saisies normales" et elles déclencheront l'événement KeyDown, KeyPress et
KeyUp...
Cordialement
--
Gilles TOURREAU
gilles.tourreau@pos.fr
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Le Fri, 30 Nov 2007 08:23:07 +0100, Jean-Noël a écrit:
Bonjour, J'intercepte les évènements KeyPress, KeyDown avec un system.windows.form.Control que j'ai ajouté sur une Form. Le Form.KeyPreviewúlse.
Les touches de direction ne déclenchent pas KeyDown, mais déplacent le focus sur les autres control de la feuille, comme la touche TAB. Les autres touches sont pourtant bien détectées : PgUP, PgDN, Insert, etc.
J'aimerai détecter ces touches dans le Keydown. Quelqu'un sait-il ce qui se passe ?
Voici le code pour test: 'Un nouveau control pour ma feuille
Private WithEvents MyCTRL As New Control
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'J'ajoute un control sur ma feuille
Me.Controls.Add(MyCTRL)
MyCTRL.Location = New Point(50, 50)
MyCTRL.Size = New Size(100, 100)
MyCTRL.BackColor = Color.Azure
MyCTRL.Visible = True
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyCTRL.Click
'Je redonne le Focus à mon control, car il
'le perd avec les flèches de direction.
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyCTRL.KeyDown
Beep()
Label1.Text = "Keydown"
End Sub
Private Sub MyCTRL_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyCTRL.KeyPress
Beep()
Label1.Text = "Keypress"
End Sub
Merci.
Voilà qui est beaucoup plus clair...
En fait par défaut les touches Down et Up sont interceptées par Control, mais elle ne déclenche pas les événement KeyDown (tout simplement parceque par défaut sous Windows la touche Up et Down fait passer le focus à un autre contrôle).
Si vous souhaitez traiter cette touche comme une saisie normale, traiter l'événement PreviewKeyDown, et dans la méthode traitant cette événement, si vous obtenez la touche Up ou Down affectez True à e.IsInputKey = True. Vous considérez ainsi que les touches Up et Down sont des touches de "saisies normales" et elles déclencheront l'événement KeyDown, KeyPress et KeyUp...
Cordialement
-- Gilles TOURREAU
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Jean-Noël
C'est "presque" magique et j'ai appris quelque chose de plus. Un grand Merci, en tout cas et excellente journée.
"Gilles TOURREAU" a écrit dans le message de news:
Le Fri, 30 Nov 2007 08:23:07 +0100, Jean-Noël a écrit:
Bonjour, J'intercepte les évènements KeyPress, KeyDown avec un system.windows.form.Control que j'ai ajouté sur une Form. Le Form.KeyPreviewúlse.
Les touches de direction ne déclenchent pas KeyDown, mais déplacent le focus sur les autres control de la feuille, comme la touche TAB. Les autres touches sont pourtant bien détectées : PgUP, PgDN, Insert, etc.
J'aimerai détecter ces touches dans le Keydown. Quelqu'un sait-il ce qui se passe ?
Voici le code pour test: 'Un nouveau control pour ma feuille
Private WithEvents MyCTRL As New Control
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'J'ajoute un control sur ma feuille
Me.Controls.Add(MyCTRL)
MyCTRL.Location = New Point(50, 50)
MyCTRL.Size = New Size(100, 100)
MyCTRL.BackColor = Color.Azure
MyCTRL.Visible = True
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyCTRL.Click
'Je redonne le Focus à mon control, car il
'le perd avec les flèches de direction.
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyCTRL.KeyDown
Beep()
Label1.Text = "Keydown"
End Sub
Private Sub MyCTRL_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyCTRL.KeyPress
Beep()
Label1.Text = "Keypress"
End Sub
Merci.
Voilà qui est beaucoup plus clair...
En fait par défaut les touches Down et Up sont interceptées par Control, mais elle ne déclenche pas les événement KeyDown (tout simplement parceque par défaut sous Windows la touche Up et Down fait passer le focus à un autre contrôle).
Si vous souhaitez traiter cette touche comme une saisie normale, traiter l'événement PreviewKeyDown, et dans la méthode traitant cette événement, si vous obtenez la touche Up ou Down affectez True à e.IsInputKey = True. Vous considérez ainsi que les touches Up et Down sont des touches de "saisies normales" et elles déclencheront l'événement KeyDown, KeyPress et KeyUp...
Cordialement
-- Gilles TOURREAU
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
C'est "presque" magique et j'ai appris quelque chose de plus.
Un grand Merci, en tout cas et excellente journée.
"Gilles TOURREAU" <gilles.tourreau@pos.fr> a écrit dans le message de news:
op.t2lmxel3r4w555@bureau1.pos.fr...
Le Fri, 30 Nov 2007 08:23:07 +0100, Jean-Noël
<jean-noel.falquet@wanadoo.fr> a écrit:
Bonjour,
J'intercepte les évènements KeyPress, KeyDown avec un
system.windows.form.Control que j'ai ajouté sur une Form. Le
Form.KeyPreviewúlse.
Les touches de direction ne déclenchent pas KeyDown, mais déplacent le
focus
sur les autres control de la feuille, comme la touche TAB. Les autres
touches sont pourtant bien détectées : PgUP, PgDN, Insert, etc.
J'aimerai détecter ces touches dans le Keydown.
Quelqu'un sait-il ce qui se passe ?
Voici le code pour test:
'Un nouveau control pour ma feuille
Private WithEvents MyCTRL As New Control
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
'J'ajoute un control sur ma feuille
Me.Controls.Add(MyCTRL)
MyCTRL.Location = New Point(50, 50)
MyCTRL.Size = New Size(100, 100)
MyCTRL.BackColor = Color.Azure
MyCTRL.Visible = True
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyCTRL.Click
'Je redonne le Focus à mon control, car il
'le perd avec les flèches de direction.
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles MyCTRL.KeyDown
Beep()
Label1.Text = "Keydown"
End Sub
Private Sub MyCTRL_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles MyCTRL.KeyPress
Beep()
Label1.Text = "Keypress"
End Sub
Merci.
Voilà qui est beaucoup plus clair...
En fait par défaut les touches Down et Up sont interceptées par Control,
mais elle ne déclenche pas les événement KeyDown (tout simplement parceque
par défaut sous Windows la touche Up et Down fait passer le focus à un
autre contrôle).
Si vous souhaitez traiter cette touche comme une saisie normale, traiter
l'événement PreviewKeyDown, et dans la méthode traitant cette événement,
si vous obtenez la touche Up ou Down affectez True à e.IsInputKey = True.
Vous considérez ainsi que les touches Up et Down sont des touches de
"saisies normales" et elles déclencheront l'événement KeyDown, KeyPress et
KeyUp...
Cordialement
--
Gilles TOURREAU
gilles.tourreau@pos.fr
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
C'est "presque" magique et j'ai appris quelque chose de plus. Un grand Merci, en tout cas et excellente journée.
"Gilles TOURREAU" a écrit dans le message de news:
Le Fri, 30 Nov 2007 08:23:07 +0100, Jean-Noël a écrit:
Bonjour, J'intercepte les évènements KeyPress, KeyDown avec un system.windows.form.Control que j'ai ajouté sur une Form. Le Form.KeyPreviewúlse.
Les touches de direction ne déclenchent pas KeyDown, mais déplacent le focus sur les autres control de la feuille, comme la touche TAB. Les autres touches sont pourtant bien détectées : PgUP, PgDN, Insert, etc.
J'aimerai détecter ces touches dans le Keydown. Quelqu'un sait-il ce qui se passe ?
Voici le code pour test: 'Un nouveau control pour ma feuille
Private WithEvents MyCTRL As New Control
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'J'ajoute un control sur ma feuille
Me.Controls.Add(MyCTRL)
MyCTRL.Location = New Point(50, 50)
MyCTRL.Size = New Size(100, 100)
MyCTRL.BackColor = Color.Azure
MyCTRL.Visible = True
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyCTRL.Click
'Je redonne le Focus à mon control, car il
'le perd avec les flèches de direction.
MyCTRL.Focus()
End Sub
Private Sub MyCTRL_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyCTRL.KeyDown
Beep()
Label1.Text = "Keydown"
End Sub
Private Sub MyCTRL_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyCTRL.KeyPress
Beep()
Label1.Text = "Keypress"
End Sub
Merci.
Voilà qui est beaucoup plus clair...
En fait par défaut les touches Down et Up sont interceptées par Control, mais elle ne déclenche pas les événement KeyDown (tout simplement parceque par défaut sous Windows la touche Up et Down fait passer le focus à un autre contrôle).
Si vous souhaitez traiter cette touche comme une saisie normale, traiter l'événement PreviewKeyDown, et dans la méthode traitant cette événement, si vous obtenez la touche Up ou Down affectez True à e.IsInputKey = True. Vous considérez ainsi que les touches Up et Down sont des touches de "saisies normales" et elles déclencheront l'événement KeyDown, KeyPress et KeyUp...
Cordialement
-- Gilles TOURREAU
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr