Este caso aunque la solución llegue a ser sencilla en implementación, no me parece que este al alcance de quienes tenemos un conocimiento básico, intermedio de DotNet. En fin, cuando necesitemos que un botón dispare su evento click al pulsar la tecla ENTER cuando esté enfocado, deberemos forzosamente crear nuestro propio botón heredándolo de otro botón claro esta, en mi caso lo he hecho a partir de uno de DevExpress.
Una vez hecho esto, sobrescribir el método ProcessCmdKey tal como muestro más abajo.
Para mi caso muy particular se requería que si se detectara a tecla y de ser ENTER se enviara el foco al siguiente control, lo cual realice mediante un PreviewKeyDown.
Public Class iBotonDx Inherits DevExpress.XtraEditors.SimpleButton Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean Return keyData = Keys.Enter OrElse MyBase.ProcessCmdKey(msg, keyData) End Function Private Sub iBotonDx_PreviewKeyDown(sender As System.Object, e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles Me.PreviewKeyDown If e.KeyCode = Keys.Enter Then SendKeys.Send("{TAB}") End If End Sub
End Class
Bien es todo en este entrada. Como siempre espero sea de utilidad.
Happy Coding… KarlozArba
No hay comentarios:
Publicar un comentario