alosamoelle
Messages postés129Date d'inscriptionjeudi 28 octobre 2004StatutMembreDernière intervention23 mai 2009
-
20 févr. 2008 à 16:42
alosamoelle
Messages postés129Date d'inscriptionjeudi 28 octobre 2004StatutMembreDernière intervention23 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
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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 .........
alosamoelle
Messages postés129Date d'inscriptionjeudi 28 octobre 2004StatutMembreDernière intervention23 mai 20091 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.