OVH Cloud OVH Cloud

Intercepter l'évènement CTRL+F

6 réponses
Avatar
anagram
Bonjour à tous,

Je voudrais intercepter l'évènement CTRL+F. J'utilise cette méthode mais
elle n'est jamais appelée :

Protected Overrides Sub OnKeyDown(ByVal e As
System.Windows.Forms.KeyEventArgs)

If e.KeyValue = Keys.Control And e.KeyValue = Keys.F Then

MsgBox("Test")

End If

End Sub

Je l'ai pourtant trouvée sur de nombreux sites dont msdn.

Je me sers pour le moment de cette méthode mais je doute qu'elle
fonctionne sur de nombreux postes :

Private Sub Key_PressedByVal(ByVal sender As Object, ByVal e As
KeyPressEventArgs) Handles GridAffectation.KeyPress
If e.KeyChar = "" Then
Dim f As New frmRecherche(Me)
f.ShowDialog()
End If
End Sub

Auriez-vous une solution ?
Merci

6 réponses

Avatar
Stéphane L.
Bonjour Xavier,

Si tu mets And, ca ne risque pas de valider la condition (1 ne peut pas être
égal à 1 ET être égal à 2 en même temps).
Essayes Or.

Stéphane

"anagram" a écrit dans le message de news:
4350fe9b$0$7844$
Bonjour à tous,

Je voudrais intercepter l'évènement CTRL+F. J'utilise cette méthode mais
elle n'est jamais appelée :

Protected Overrides Sub OnKeyDown(ByVal e As
System.Windows.Forms.KeyEventArgs)

If e.KeyValue = Keys.Control And e.KeyValue = Keys.F Then

MsgBox("Test")

End If

End Sub

Je l'ai pourtant trouvée sur de nombreux sites dont msdn.

Je me sers pour le moment de cette méthode mais je doute qu'elle
fonctionne sur de nombreux postes :

Private Sub Key_PressedByVal(ByVal sender As Object, ByVal e As
KeyPressEventArgs) Handles GridAffectation.KeyPress
If e.KeyChar = "" Then
Dim f As New frmRecherche(Me)
f.ShowDialog()
End If
End Sub

Auriez-vous une solution ?
Merci


Avatar
Stephane TUET
Bonjour

Essaie plutôt quelque chose de ce style :

If e.Control AndAlso e.KeyCode = Keys.F Then

...

End If


Steph



"anagram" a écrit dans le message de news:
4350fe9b$0$7844$
Bonjour à tous,

Je voudrais intercepter l'évènement CTRL+F. J'utilise cette méthode mais
elle n'est jamais appelée :

Protected Overrides Sub OnKeyDown(ByVal e As
System.Windows.Forms.KeyEventArgs)

If e.KeyValue = Keys.Control And e.KeyValue = Keys.F Then

MsgBox("Test")

End If

End Sub

Je l'ai pourtant trouvée sur de nombreux sites dont msdn.

Je me sers pour le moment de cette méthode mais je doute qu'elle
fonctionne sur de nombreux postes :

Private Sub Key_PressedByVal(ByVal sender As Object, ByVal e As
KeyPressEventArgs) Handles GridAffectation.KeyPress
If e.KeyChar = "" Then
Dim f As New frmRecherche(Me)
f.ShowDialog()
End If
End Sub

Auriez-vous une solution ?
Merci


Avatar
Kawaman
Le probleme c'est que tu n'as pas acces aux touches dans ta form, c'est
directement le composant qui a le focus qui recoit les evenements
clavier, et ton onkeydown est jamais appellé.
Pour que la form accede aux touches, il faut metter la propriete
keyPreview a true.


anagram a écrit :
Bonjour à tous,

Je voudrais intercepter l'évènement CTRL+F. J'utilise cette méthode mais
elle n'est jamais appelée :

Protected Overrides Sub OnKeyDown(ByVal e As
System.Windows.Forms.KeyEventArgs)

If e.KeyValue = Keys.Control And e.KeyValue = Keys.F Then

MsgBox("Test")

End If

End Sub

Je l'ai pourtant trouvée sur de nombreux sites dont msdn.

Je me sers pour le moment de cette méthode mais je doute qu'elle
fonctionne sur de nombreux postes :

Private Sub Key_PressedByVal(ByVal sender As Object, ByVal e As
KeyPressEventArgs) Handles GridAffectation.KeyPress
If e.KeyChar = "" Then
Dim f As New frmRecherche(Me)
f.ShowDialog()
End If
End Sub

Auriez-vous une solution ?
Merci


Avatar
TroXsA - [VB.NET-2005]
Salut

Pourquoi ne pas faire un menu contectuel et comme racourci clavier mettre
ctrl+F et de mettre le code dans l'evenement context ??

@+

"anagram" a écrit dans le message de news:
4350fe9b$0$7844$
Bonjour à tous,

Je voudrais intercepter l'évènement CTRL+F. J'utilise cette méthode mais
elle n'est jamais appelée :

Protected Overrides Sub OnKeyDown(ByVal e As
System.Windows.Forms.KeyEventArgs)

If e.KeyValue = Keys.Control And e.KeyValue = Keys.F Then

MsgBox("Test")

End If

End Sub

Je l'ai pourtant trouvée sur de nombreux sites dont msdn.

Je me sers pour le moment de cette méthode mais je doute qu'elle
fonctionne sur de nombreux postes :

Private Sub Key_PressedByVal(ByVal sender As Object, ByVal e As
KeyPressEventArgs) Handles GridAffectation.KeyPress
If e.KeyChar = "" Then
Dim f As New frmRecherche(Me)
f.ShowDialog()
End If
End Sub

Auriez-vous une solution ?
Merci


Avatar
TroXsA - [VB.NET-2005]
Voila ce que j'ai fait et ça fonctionne plutot bien :)


Private Sub RacourcitestToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
RacourcitestToolStripMenuItem.Click
If TextBox1.Focused = True Then
MessageBox.Show("La textbox1 a le focus")
Else
MessageBox.Show("La textbox1 n'a pas le focus")
End If
End Sub

--





Mail : http://cerbermail.com/?rIXgaw9Xsl
Site : http://planetenova.free.fr/
Avatar
anagram
Merci à tous pour votre aide !
C'est bien le focus qu'il me manquait sur la form.

J'ai réglé ça en mettant l'attribut keyPreview à True.
A bientôt !
++ ;-)

TroXsA - [VB.NET-2005] a écrit :
Voila ce que j'ai fait et ça fonctionne plutot bien :)


Private Sub RacourcitestToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
RacourcitestToolStripMenuItem.Click
If TextBox1.Focused = True Then
MessageBox.Show("La textbox1 a le focus")
Else
MessageBox.Show("La textbox1 n'a pas le focus")
End If
End Sub