Touche appuyée

Résolu
alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 - 20 févr. 2008 à 16:42
alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 - 20 févr. 2008 à 21:02
Bonjour,
voila mon probleme je recode d'ancien programme vb6 en VB 2005 et je n'arrive pas a savoir qu'elle touche est enfoncée sur une form.
J'arrive sans problème à le faire dans un textbox mais pas sur Form1_KeyPress et l'utilisateur doit pouvoir intégrer des évenements en appuyant sur les touches de F1 à F9 sans pour cela sélectionner un textbox.
En clair car je devient brouillon, une fois l'appli lancée en appuyant sur la touche F1 un évenement doit se passé or il ne se passe rien.
J'ai cherché sur le forum mais je n'ai pas trouver.
Merci de m'aider
 

4 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
20 févr. 2008 à 19:34
Pour que ça fonctionne tout le temps, la propriété KeyPreview doit obligatoirement rester à True.

Le code que tu montre est un exemple qui est là justement pour montrer la différence des valeurs de keypreview.

Au premier Alt+F, tu désactive keypreview, donc par la suite seul ton textbox ou ton bouton pourra recevoir l'évènement.
Au second, à condition qu'il soit fait sur le textbox réactive keypreview, et le troisième marchera et le cinquième et .........

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
20 févr. 2008 à 16:48
Bonjour

tu as regardé concernant les menus, sinon il n'y a pas une propriété KeyPreview ?

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 1
20 févr. 2008 à 17:59
Je n'ai pas trouver ce que je voulai, j'ai trouver cela
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' When the form loads, the KeyPreview property is set to True.
' This lets the form capture keyboard events before
' any other element in the form.
Me.KeyPreview = True
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.Alt And e.KeyCode.ToString = "F" Then
' When the user presses both the 'ALT' key and 'F' key,
' KeyPreview is set to False, and a message appears.
' This message is only displayed when KeyPreview is set to True.
Me.KeyPreview = False
MsgBox("KeyPreview is True, and this is from the FORM.")
End If
End Sub

Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.Alt And e.KeyCode.ToString = "F" Then
' When the user presses both the 'Alt key and the 'F' key,
' KeyPreview is set to True, and a message appears.
' This message is only displayed when KeyPreview is set to False.
Me.KeyPreview = True
MsgBox("KeyPreview is False, and this is from the CONTROL")
End If
End Sub

Mais le probleme c'est que si un textbox ou un button est selectionne la partie de la form ne fonctionne pas pour les touches.
Je pense que je vais mettre une listbox en select dans mes fin de function pour faire la detection dessus.
0
alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 1
20 févr. 2008 à 21:02
Merci, j'étais tellement désespéré que je n'avais pas vu.
Ca marche nickel et voilà encore un p'tit développeur de content.
0
Rejoignez-nous