Invaluable ayuda la que me has proporcionado!!!
Me pongo manos a la obra.
Mil gracias.
Post by SoftJaénPost by ArturoAlguno sabe cómo detectar qué tecla se presionó dentro
de un DataGrid ?
Para conocer la tecla que se presionó dentro de un control DataGrid, puedes
reemplazar la función «ProcessCmdKey», de ésta manera la función será
llamada por cualquier control que te permita escribir texto, como por
ejemplo, un control TextBox. Si solamente deseas que sea llamada cuando se
pulse una tecla en el control DataGrid, declara una variable Boolean a nivel
de la propia clase Form, la cual deberá tener el valor True, cuando el foco
lo tenga el control DataGrid, y False, cuando el foco pase a otro control.
Inserta en la clase Form donde se encuentre el control DataGrid, el
Private IsDataGridFocused As Boolean
Protected Overrides Function ProcessCmdKey( _
ByRef msg As System.Windows.Forms.Message, _
ByVal keyData As System.Windows.Forms.Keys) As Boolean
' Si el control DataGrid no tiene el foco,
' abandonamos la función.
'
If Not IsDataGridFocused Then Return False
' La función procesará una tecla, reemplazando al
' método de la clase base.
'
Dim keyPressed As Keys = CType(msg.WParam.ToInt32(), Keys)
' Tecla presionada
'
MessageBox.Show(keyPressed.ToString)
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
Para establecer el valor de la variable «IsDataGridFocused», puedes hacerlo
en los eventos «Enter» (True) y «Leave» (False) del control DataGrid.
Un saludo
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.