Principales respuestas
¿Existe alguna manera de activar la función de la tecla TAB a la tecla Enter?

Pregunta
-
Que tal compañeros del foro? Saludos...
Quisiera saber si hay algún modo de activar la función de la tecla TAB (pasar de un control a otro) a la tecla Enter, pues he visto que en muchos sistemas el Enter funciona así. Específicamente, me interesa saber si existe un método preestablecido por Windows o VB para ello, porque sé bien que se podría lograr usando el evento KeyPress. No obstante, eso es precisamente lo que no quiero, pues entonces tendría que usar ese evento en cada control. ¡Imagínense lo tedioso de eso! No me parece funcional.
Así pues, de verdad quisiera que me ayudaran al respecto, pues es más cómodo usar el Enter que el TAB, sobre todo para los usuarios menos experimentados.
Aprendiendo un poco cada día...martes, 26 de octubre de 2010 3:24
Respuestas
-
Hola:
Inserta el siguiente procedimiento en el formulario donde deseas que al pulsar la tecla Enter se pase el foco a otro control:
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As BooleanSelect Case keyData
Case Keys.Return' Desplazar el foco entre los distintos controles
' mediante la tecla Return. El código está basado en un
' ejemplo de Francesco Balena.
'
' Iniciar todos los controles seleccionados actualmente.
'
Dim ctrl As Control = Me.ActiveControlDo
' Obtener el siguiente control hacia delante en el
' orden de tabulación.
ctrl = Me.GetNextControl(ctrl, True)' GetNextControl(ctrl, False) puede devolver Nothing si
' es el primer control.If Not (ctrl Is Nothing) AndAlso (ctrl.CanFocus) AndAlso (ctrl.TabStop) Then
' Si el control puede recibir el foco, se lo doy.
ctrl.Focus()
Exit Do
End If
LoopEnd Select
Return MyBase.ProcessCmdKey(msg, keyData)End Function
En principio, el procedimiento le irá dando el foco a todos aquellos controles que puedan obtenerlo, los cuales no tienen por qué ser solamente controles TextBox, por lo que si en el formulario existen controles Button, éstos también obtendrán el foco cuando le corresponda, de acuerdo al orden de tabulación que tengan establecido.
Un saludo
Enrique Martínez [MS MVP - VB]- Propuesto como respuesta Enrique M. MontejoModerator martes, 26 de octubre de 2010 3:44
- Marcado como respuesta Jeison Friedman martes, 26 de octubre de 2010 6:19
martes, 26 de octubre de 2010 3:44Moderador -
"Jason Friedman" escribió:
> Acabo de notar cuál es la falla. Por alguna razón, el proceso
> se ejecuta dos veces cuando el ActiveControl es un ComboBoxEfectivamente. Cuando el control activo es un control ComboBox, se ejecuta dos veces el método ProcessCmdKey, por lo que el foco no pasa al control inmediatamente posterior al control ComboBox, salvo que el valor de la propiedad DropDownStyle del control sea DropDownList, en cuyo caso, ya solamente se ejecuta una sola vez.
Como el control ComboBox se compone digamos que de dos controles (la parte de la lista y la parte donde se escribe), es por lo que se ejecuta dos veces (por el control donde se escribe). Si le indicamos el valor DropDownList, ya no tiene control donde escribir, por lo que el método ProcessCmdKey ya se ejecutará una única vez.
Si no vas a utilizar los eventos de teclado de los controles (KeyDown, KeyPress y KeyUp), es fácil la solución: en lugar de salir del bucle´Do ... Loop con la instrucción Exit Do, podemos abandonar el método indicando que se ha procesado la tecla:
Do
' Obtener el siguiente control hacia delante en el
' orden de tabulación.
ctrl = Me.GetNextControl(ctrl, True)' GetNextControl(ctrl, False) puede devolver Nothing si
' es el primer control.If Not (ctrl Is Nothing) AndAlso (ctrl.CanFocus) AndAlso (ctrl.TabStop) Then
' Si el control puede recibir el foco, se lo doy.
ctrl.Focus()' Indicamos que el método ha procesado la tecla
Return TrueEnd If
LoopRepito que si abandonas el procedimiento con «Return True», no se desencadenarán los eventos KeyDown, KeyPress y KeyUp.
Otra cosa que puedes hacer es devolver «Return True» si el tipo de control es ComboBox y su propiedad DropDownStyle es distinta a DropDownList.
Por ahora no se me ocurre otra cosa.
Enrique Martínez [MS MVP - VB]- Propuesto como respuesta Enrique M. MontejoModerator miércoles, 27 de octubre de 2010 13:58
- Marcado como respuesta Enrique M. MontejoModerator domingo, 15 de mayo de 2011 8:58
miércoles, 27 de octubre de 2010 13:58Moderador -
Cuando digo que otra que puedes hacer es devolver «Return True» si el tipo de control es ComboBox, me refiero a ejecutar lo siguiente:
Protected Overrides Function ProcessCmdKey( _
ByRef msg As Message, _
ByVal keyData As Keys) As BooleanSelect Case keyData
Case Keys.Return
' Desplazar el foco entre los distintos controles
' mediante la tecla Return. El código está basado en un
' ejemplo de Francesco Balena.
'
' Guardamos el control actualmente activo.
'
Dim ctrlActive As Control = Me.ActiveControl' Iniciar todos los controles seleccionados actualmente.
'
Dim ctrl As Control = ctrlActiveDo
' Obtener el siguiente control hacia delante en el
' orden de tabulación.
'
ctrl = Me.GetNextControl(ctrl, True)' GetNextControl(ctrl, False) puede devolver Nothing si
' es el primer control.
'
If (Not (ctrl Is Nothing)) AndAlso (ctrl.CanFocus) AndAlso (ctrl.TabStop) Then
' Si el control puede recibir el foco, se lo doy.
ctrl.Focus()If (TypeOf (ctrlActive) Is ComboBox) Then
' Indicamos que el método ha procesado la tecla
Return True
End If' Para los restantes controles, abandonamos el bucle.
Exit DoEnd If
LoopEnd Select
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
De ésta manera, cuando el control activo sea un control ComboBox, se procesará la tecla Return, de ésta manera ya puedes escribir código en los eventos KeyDown, KeyPress y KeyUp, si procede, de los restantes controles distintos al control ComboBox.
En negrita figuran los cambios efectuados.
Enrique Martínez [MS MVP - VB]- Propuesto como respuesta Enrique M. MontejoModerator miércoles, 27 de octubre de 2010 17:42
- Marcado como respuesta Enrique M. MontejoModerator domingo, 15 de mayo de 2011 8:58
miércoles, 27 de octubre de 2010 17:42Moderador -
"Mina_" preguntó:
> Tú código me funciona muy bien, pero tengo un detalle: Cuando el focus
> llega a un buttom me ejecuta lo que tiene el click de ese buttom.
> ¿cómo puedo arreglarlo?, sí quiero que reciba el foco pero que NO me
> ejecute lo que tengo ahí hasta que yo le indique.Hola:
Si te he entendido bien, tan sólo tienes que pasarle el foco al control Button y hacer que el método ProcessCmdKey devuelva el valor True para que no se ejecute el código que pueda existir en el evento Click del control Button:
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean Select Case keyData Case Keys.Return ' Desplazar el foco entre los distintos controles ' mediante la tecla Return. El código está basado en un ' ejemplo de Francesco Balena. ' ' Iniciar todos los controles seleccionados actualmente. ' Dim ctrl As Control = Me.ActiveControl Do ' Obtener el siguiente control hacia delante en el ' orden de tabulación. ctrl = Me.GetNextControl(ctrl, True) ' GetNextControl(ctrl, False) puede devolver Nothing si ' es el primer control. ' If ((Not ctrl Is Nothing) AndAlso (ctrl.CanFocus) AndAlso (ctrl.TabStop)) Then ' Si el control puede recibir el foco, se lo doy. ctrl.Focus() If (TypeOf ctrl Is Button) Then ' Indicamos que el método ha procesado la tecla. Return True End If Exit Do End If Loop End Select Return MyBase.ProcessCmdKey(msg, keyData) End Function
En negrita las modificaciones efectuadas al procedimiento ProcessCmdKey inicial.
Un saludo
Enrique Martínez Montejo
[MS MVP - Visual Studio y Tecnologías de Desarrollo]
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.
Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.
Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción Option Strict.- Marcado como respuesta Enrique M. MontejoModerator jueves, 7 de julio de 2016 17:13
miércoles, 6 de julio de 2016 17:56Moderador
Todas las respuestas
-
Hola:
Inserta el siguiente procedimiento en el formulario donde deseas que al pulsar la tecla Enter se pase el foco a otro control:
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As BooleanSelect Case keyData
Case Keys.Return' Desplazar el foco entre los distintos controles
' mediante la tecla Return. El código está basado en un
' ejemplo de Francesco Balena.
'
' Iniciar todos los controles seleccionados actualmente.
'
Dim ctrl As Control = Me.ActiveControlDo
' Obtener el siguiente control hacia delante en el
' orden de tabulación.
ctrl = Me.GetNextControl(ctrl, True)' GetNextControl(ctrl, False) puede devolver Nothing si
' es el primer control.If Not (ctrl Is Nothing) AndAlso (ctrl.CanFocus) AndAlso (ctrl.TabStop) Then
' Si el control puede recibir el foco, se lo doy.
ctrl.Focus()
Exit Do
End If
LoopEnd Select
Return MyBase.ProcessCmdKey(msg, keyData)End Function
En principio, el procedimiento le irá dando el foco a todos aquellos controles que puedan obtenerlo, los cuales no tienen por qué ser solamente controles TextBox, por lo que si en el formulario existen controles Button, éstos también obtendrán el foco cuando le corresponda, de acuerdo al orden de tabulación que tengan establecido.
Un saludo
Enrique Martínez [MS MVP - VB]- Propuesto como respuesta Enrique M. MontejoModerator martes, 26 de octubre de 2010 3:44
- Marcado como respuesta Jeison Friedman martes, 26 de octubre de 2010 6:19
martes, 26 de octubre de 2010 3:44Moderador -
Gracias amigo. Ya lo pruebo y le aviso...
Aprendiendo un poco cada día...martes, 26 de octubre de 2010 6:06 -
Funcionó perfecto. Ahora bien, quería implementarlo solo en los controles de entrada de texto, por lo cual lo condicioné con un Select Case ctrl.GetType.Name().
Gracias de verdad.
Aprendiendo un poco cada día...martes, 26 de octubre de 2010 6:43 -
Disculpa, acabo de notar que tengo un problema con el evento. Funciona bien con el salto de control a control, cuando de repente me salta dos de una vez. Entonces usé un Breakpoint a ver qué pasaba, y para mi sorpresa el evento ProcessCmdKey se ejecuta más de una vez, aunque solo oprima la tecla una vez. Por eso se salta dos al mismo tiempo.
Alguna idea?
Aprendiendo un poco cada día...martes, 26 de octubre de 2010 7:59 -
"Jason Friedman" escribió:
> Disculpa, acabo de notar que tengo un problema con el evento.
> Funciona bien con el salto de control a control, cuando de
> repente me salta dos de una vez. Entonces usé un Breakpoint
> a ver qué pasaba, y para mi sorpresa el evento ProcessCmdKey
> se ejecuta más de una vez, aunque solo oprima la tecla una vez.
> Por eso se salta dos al mismo tiempo.
>
> Alguna idea?Pues sin ver TODO EL CÓDIGO EXISTENTE EN EL FORMULARIO, no tengo ni la más ligera de idea para que el procedimiento «ProcessCmdKey se ejecute más de una vez, aunque solo oprimas la tecla una vez». ¿?
El procedimiento funciona correctamente, tal y como era de esperar, y se ejecutará cada vez que se presione cualquier tecla en cualquier control existente en el formulario, de ahí que se tenga que verificar qué tecla ha desencadenado el método para que la rutina solamente se ejecute cuando se haya pulsado la tecla Return.
Ahora bien, si en cualquier otra parte de tu formulario estás enviando mediante código la pulsación de la tecla Return, como por ejemplo
SendKeys.Send("{Enter}")
obviamente se ejecutará el método ProcessCmdKey. Así que, a ver lo que tienes escrito en tu formulario para que el método ProcessCmdKey se ejecute dos veces aunque solamente se oprima la tecla Return una sola vez.
Y en cuanto a que solamente deseas que se ejecute la rutina con los controles de texto, establece a False el valor de la propiedad TabStop en aquellos controles donde no deseas que pase el foco pulsando la tecla Enter, aunque si lo haces, tampoco pasará el foco pulsando la tecla Tab.
Enrique Martínez [MS MVP - VB]martes, 26 de octubre de 2010 13:23Moderador -
> "Ahora bien, si en cualquier otra parte de tu formulario estás enviando mediante código la pulsación de la tecla Return [...] obviamente se ejecutará el método ProcessCmdKey."
Eso lo entiendo, pero verifiqué y no es así.
Como le dije, usé un breakpoint para ver la ejecución línea por línea (usando la tecla F8), y extrañamente apenas llega a End Function regresa a la primera línea del proceso. Por eso le hice la pregunta. Lo más extraño es que solo ocurre con un control, el cual no tiene eventos asociados. Seguiré revisando.
Gracias!
Aprendiendo un poco cada día...martes, 26 de octubre de 2010 19:18 -
Me funciona perfecto tambien a mi en todos campos menos en uno.
En un formulario tengo un cuadro de texto que es "Notas", el cual quiero poder introducir varias lineas de texto, pero claro al dar intro para cambiar de linea se me salta al siguiente campo. ¿Se le puede implementar la funcion que si el campo se llama notas que no se salga de el aunque se pulse intro?
Saludos
martes, 26 de octubre de 2010 20:58 -
Claro! Prueba agregando esta línea (la que está en negrita):
Select Case KeyData
Case Keys.Return
Dim ctrl As Control = Me.ActiveControl
If ctrl Is Notas then Exit Function
...
Como ves, si el control activo es el que dijiste, se saldrá del proceso omitiendo el resto del código. Esto evitará que salte al control siguiente.
Aprendiendo un poco cada día...martes, 26 de octubre de 2010 21:08 -
OK :-)
Gracias es perfecto ahora.
martes, 26 de octubre de 2010 21:15 -
Acabo de notar cuál es la falla. Por alguna razón, el proceso se ejecuta dos veces cuando el ActiveControl es un ComboBox. Creé un formulario nuevo con varios TextBox y un ComboBox en el medio, y lo único que tiene de código es ProcessCmdKey. Pues bien, me pasó exactamente lo mismo: cuando tengo el foco en el ComboBox le doy Enter, el evento se ejecuta dos veces, por lo cual el foco no queda en el siguiente TextBox, sino en el que le sigue a ese. Luego hice pruebas con varios ComboBox juntos, uno tras el otro, y pasa lo mismo: salta de a dos porque el evento se ejecuta dos veces sin ninguna razón aparente.
De verdad no tengo la menor idea de por qué ocurre. Lo malo es que no entiendo muy bien esa función ProcessCmdKey. Por eso agradecería una mano con respecto a este error.
Aprendiendo un poco cada día...martes, 26 de octubre de 2010 23:26 -
Bueno, buscando la solución del problema, conseguí hacer algunas "maromas" que me dieron resultado. Aun así, me gustaría saber qué pasa con el ComboBox, si es que alguien lo sabe. He aquí lo que resolví (hice algunos cambios al ejemplo del amigo Enrique):
Dim cmbCtrl As Boolean = False 'Necesito esta variable para identificar el ComboBox Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean Select Case keyData Case Keys.Enter, Keys.Down, Keys.Up 'Dimenciono las variables que necesito Dim ctrl As Object = Me.ActiveControl Dim type As String = ctrl.GetType.Name() Dim forward As Boolean = True If keyData = Keys.Up Then forward = False 'Algunas consideraciones y excepciones previas If type = "Button" Then Exit Function 'Para que el botón seleccionado haga click como de costumbre If (keyData = Keys.Down Or keyData = Keys.Up) And (type = "ComboBox" Or type = "NumericUpDown") Then Exit Function 'La corrección del problema con el ComboBox 'Si es la segunda ejecución del evento, lo interrumpo y me salgo If cmbCtrl = True Then cmbCtrl = False Exit Function End If 'Si el evento fue llamado por un ComboBox, tomo nota para anular el segundo llamado If type = "ComboBox" AndAlso ctrl.DropDownStyle = ComboBoxStyle.DropDown Then cmbCtrl = True 'Determino qué tipo de controles activarán el salto If type = "TextBox" Or type = "ComboBox" Or type = "NumericUpDown" Then Do ctrl = Me.GetNextControl(ctrl, forward) If (ctrl IsNot Nothing) AndAlso (ctrl.CanFocus) AndAlso (ctrl.TabStop) Then type = ctrl.GetType.Name() 'Determino qué tipo de controles recibirán el foco al teclear Enter, Down o Up If type = "TextBox" Or type = "ComboBox" Or type = "NumericUpDown" Then ctrl.Select() ctrl.Select(0, ctrl.Text.Length) 'Para seleccionar todo el texto Exit Function End If End If Loop End If End Select End Function
Así me funciona sin problema.
Como ven, algunas de las líneas que agregué se debe a que también quise que las teclas Down y Up me desplazaran por los controles, aunque no con el mismo alcance que el Enter o el TAB. De hecho, el TAB es el único que dejé con total libertad de desplazamiento, según sus funciones predeterminadas. El Enter y las demás son para comodidad y practicidad.
Bien, seguiré pendiente por si alguien sabe cómo solventar lo del ComboBox.
Aprendiendo un poco cada día...- Editado Jeison Friedman miércoles, 27 de octubre de 2010 1:50 A última hora me fijé que el problema solo se da cuando el ComboBox tiene la propiedad DropDownStyle es DropDown. Por incluí esa condición.
miércoles, 27 de octubre de 2010 0:47 -
"Jason Friedman" escribió:
> Acabo de notar cuál es la falla. Por alguna razón, el proceso
> se ejecuta dos veces cuando el ActiveControl es un ComboBoxEfectivamente. Cuando el control activo es un control ComboBox, se ejecuta dos veces el método ProcessCmdKey, por lo que el foco no pasa al control inmediatamente posterior al control ComboBox, salvo que el valor de la propiedad DropDownStyle del control sea DropDownList, en cuyo caso, ya solamente se ejecuta una sola vez.
Como el control ComboBox se compone digamos que de dos controles (la parte de la lista y la parte donde se escribe), es por lo que se ejecuta dos veces (por el control donde se escribe). Si le indicamos el valor DropDownList, ya no tiene control donde escribir, por lo que el método ProcessCmdKey ya se ejecutará una única vez.
Si no vas a utilizar los eventos de teclado de los controles (KeyDown, KeyPress y KeyUp), es fácil la solución: en lugar de salir del bucle´Do ... Loop con la instrucción Exit Do, podemos abandonar el método indicando que se ha procesado la tecla:
Do
' Obtener el siguiente control hacia delante en el
' orden de tabulación.
ctrl = Me.GetNextControl(ctrl, True)' GetNextControl(ctrl, False) puede devolver Nothing si
' es el primer control.If Not (ctrl Is Nothing) AndAlso (ctrl.CanFocus) AndAlso (ctrl.TabStop) Then
' Si el control puede recibir el foco, se lo doy.
ctrl.Focus()' Indicamos que el método ha procesado la tecla
Return TrueEnd If
LoopRepito que si abandonas el procedimiento con «Return True», no se desencadenarán los eventos KeyDown, KeyPress y KeyUp.
Otra cosa que puedes hacer es devolver «Return True» si el tipo de control es ComboBox y su propiedad DropDownStyle es distinta a DropDownList.
Por ahora no se me ocurre otra cosa.
Enrique Martínez [MS MVP - VB]- Propuesto como respuesta Enrique M. MontejoModerator miércoles, 27 de octubre de 2010 13:58
- Marcado como respuesta Enrique M. MontejoModerator domingo, 15 de mayo de 2011 8:58
miércoles, 27 de octubre de 2010 13:58Moderador -
Cuando digo que otra que puedes hacer es devolver «Return True» si el tipo de control es ComboBox, me refiero a ejecutar lo siguiente:
Protected Overrides Function ProcessCmdKey( _
ByRef msg As Message, _
ByVal keyData As Keys) As BooleanSelect Case keyData
Case Keys.Return
' Desplazar el foco entre los distintos controles
' mediante la tecla Return. El código está basado en un
' ejemplo de Francesco Balena.
'
' Guardamos el control actualmente activo.
'
Dim ctrlActive As Control = Me.ActiveControl' Iniciar todos los controles seleccionados actualmente.
'
Dim ctrl As Control = ctrlActiveDo
' Obtener el siguiente control hacia delante en el
' orden de tabulación.
'
ctrl = Me.GetNextControl(ctrl, True)' GetNextControl(ctrl, False) puede devolver Nothing si
' es el primer control.
'
If (Not (ctrl Is Nothing)) AndAlso (ctrl.CanFocus) AndAlso (ctrl.TabStop) Then
' Si el control puede recibir el foco, se lo doy.
ctrl.Focus()If (TypeOf (ctrlActive) Is ComboBox) Then
' Indicamos que el método ha procesado la tecla
Return True
End If' Para los restantes controles, abandonamos el bucle.
Exit DoEnd If
LoopEnd Select
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
De ésta manera, cuando el control activo sea un control ComboBox, se procesará la tecla Return, de ésta manera ya puedes escribir código en los eventos KeyDown, KeyPress y KeyUp, si procede, de los restantes controles distintos al control ComboBox.
En negrita figuran los cambios efectuados.
Enrique Martínez [MS MVP - VB]- Propuesto como respuesta Enrique M. MontejoModerator miércoles, 27 de octubre de 2010 17:42
- Marcado como respuesta Enrique M. MontejoModerator domingo, 15 de mayo de 2011 8:58
miércoles, 27 de octubre de 2010 17:42Moderador -
Tú código me funciona muy bien, pero tengo un detalle: Cuando el focus llega a un buttom me ejecuta lo que tiene el click de ese buttom. ¿cómo puedo arreglarlo?, sí quiero que reciba el foco pero que NO me ejecute lo que tengo ahí hasta que yo le indique.
De antemano gracias y Saludos
- Editado Mina_ martes, 5 de julio de 2016 20:39
martes, 5 de julio de 2016 20:38 -
"Mina_" preguntó:
> Tú código me funciona muy bien, pero tengo un detalle: Cuando el focus
> llega a un buttom me ejecuta lo que tiene el click de ese buttom.
> ¿cómo puedo arreglarlo?, sí quiero que reciba el foco pero que NO me
> ejecute lo que tengo ahí hasta que yo le indique.Hola:
Si te he entendido bien, tan sólo tienes que pasarle el foco al control Button y hacer que el método ProcessCmdKey devuelva el valor True para que no se ejecute el código que pueda existir en el evento Click del control Button:
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean Select Case keyData Case Keys.Return ' Desplazar el foco entre los distintos controles ' mediante la tecla Return. El código está basado en un ' ejemplo de Francesco Balena. ' ' Iniciar todos los controles seleccionados actualmente. ' Dim ctrl As Control = Me.ActiveControl Do ' Obtener el siguiente control hacia delante en el ' orden de tabulación. ctrl = Me.GetNextControl(ctrl, True) ' GetNextControl(ctrl, False) puede devolver Nothing si ' es el primer control. ' If ((Not ctrl Is Nothing) AndAlso (ctrl.CanFocus) AndAlso (ctrl.TabStop)) Then ' Si el control puede recibir el foco, se lo doy. ctrl.Focus() If (TypeOf ctrl Is Button) Then ' Indicamos que el método ha procesado la tecla. Return True End If Exit Do End If Loop End Select Return MyBase.ProcessCmdKey(msg, keyData) End Function
En negrita las modificaciones efectuadas al procedimiento ProcessCmdKey inicial.
Un saludo
Enrique Martínez Montejo
[MS MVP - Visual Studio y Tecnologías de Desarrollo]
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.
Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.
Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción Option Strict.- Marcado como respuesta Enrique M. MontejoModerator jueves, 7 de julio de 2016 17:13
miércoles, 6 de julio de 2016 17:56Moderador