OVH Cloud OVH Cloud

Touche S = F4 ???

2 réponses
Avatar
Anthony MARIE
Bonjour à tous,

Sur une Winform, j'ai un datagrid, et lorsque j'appuie sur la touche F4, je
souhaite lancer une méthode appelée AfficheChoixElement(True). Voici la
procédure que j'ai mis dans mon Winform... mais voilà : lorsque j'appuie sur
"s" (minuscule), voila que Keycode=Keys.F4.... incroyable !

Si quelqu'un a un tuyau à ce sujet, je suis interessé car je cherche en vain
une solution.
------------------------------
Protected Overrides Function ProcessKeyPreview(ByRef m As
System.Windows.Forms.Message) As Boolean
Dim keycode As Keys = CType(m.WParam.ToInt32, Keys)
If keycode = Keys.F4 Then AfficheChoixElements(True)
Return False
End Function

2 réponses

Avatar
Zoury
Salut Anthony! :O)

créer toi une classe qui hérite du DataGrid et qui override la méthode
ProcessCmdKey() comme ceci
'***
Public Class DataGridEx
Inherits DataGrid

Private Const WM_KEYDOWN As Int32 = &H100

Protected Overrides Function ProcessCmdKey(ByRef msg As
System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As
Boolean
If ((msg.Msg = WM_KEYDOWN) And (keyData = Keys.F4)) Then
Console.WriteLine("place ton code ici")
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
End Class
'***

n'oublie pas de remplacer les déclarations du grid dans ton code "As
System.Windows.Forms.DataGrid" devient "As DataGridEx" (ou peu importe nom
que tu lui donnes)

--
Cordialement
Yanick
MVP pour Visual Basic

"Anthony MARIE" <acm-concept@(enlever)wanadoo.fr> a écrit dans le message de
news:
Bonjour à tous,

Sur une Winform, j'ai un datagrid, et lorsque j'appuie sur la touche F4,


je
souhaite lancer une méthode appelée AfficheChoixElement(True). Voici la
procédure que j'ai mis dans mon Winform... mais voilà : lorsque j'appuie


sur
"s" (minuscule), voila que Keycode=Keys.F4.... incroyable !

Si quelqu'un a un tuyau à ce sujet, je suis interessé car je cherche en


vain
une solution.
------------------------------
Protected Overrides Function ProcessKeyPreview(ByRef m As
System.Windows.Forms.Message) As Boolean
Dim keycode As Keys = CType(m.WParam.ToInt32, Keys)
If keycode = Keys.F4 Then AfficheChoixElements(True)
Return False
End Function




Avatar
Anthony MARIE
Super,
ça fonctionne impeccable,
merci à toi !

Anthony

"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
Salut Anthony! :O)

créer toi une classe qui hérite du DataGrid et qui override la méthode
ProcessCmdKey() comme ceci
'***
Public Class DataGridEx
Inherits DataGrid

Private Const WM_KEYDOWN As Int32 = &H100

Protected Overrides Function ProcessCmdKey(ByRef msg As
System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys)


As
Boolean
If ((msg.Msg = WM_KEYDOWN) And (keyData = Keys.F4)) Then
Console.WriteLine("place ton code ici")
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
End Class
'***

n'oublie pas de remplacer les déclarations du grid dans ton code "As
System.Windows.Forms.DataGrid" devient "As DataGridEx" (ou peu importe nom
que tu lui donnes)

--
Cordialement
Yanick
MVP pour Visual Basic

"Anthony MARIE" <acm-concept@(enlever)wanadoo.fr> a écrit dans le message


de
news:
> Bonjour à tous,
>
> Sur une Winform, j'ai un datagrid, et lorsque j'appuie sur la touche F4,
je
> souhaite lancer une méthode appelée AfficheChoixElement(True). Voici la
> procédure que j'ai mis dans mon Winform... mais voilà : lorsque j'appuie
sur
> "s" (minuscule), voila que Keycode=Keys.F4.... incroyable !
>
> Si quelqu'un a un tuyau à ce sujet, je suis interessé car je cherche en
vain
> une solution.
> ------------------------------
> Protected Overrides Function ProcessKeyPreview(ByRef m As
> System.Windows.Forms.Message) As Boolean
> Dim keycode As Keys = CType(m.WParam.ToInt32, Keys)
> If keycode = Keys.F4 Then AfficheChoixElements(True)
> Return False
> End Function
>
>