Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema con Keydown

Estas en el tema de Problema con Keydown en el foro de .NET en Foros del Web. Hola a Todos de Nuevo Tengo la Siguiente Consulta quisiera realizar la siguiente accion digamos si yo presiono Ctr + F q me aparezca por ...
  #1 (permalink)  
Antiguo 25/02/2009, 08:08
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Problema con Keydown

Hola a Todos de Nuevo Tengo la Siguiente Consulta quisiera realizar la siguiente accion digamos si yo presiono Ctr + F q me aparezca por ejemplo un ContextMenuStrip para realizar cualquier tipo de accion he intentado realizarlo en el evento KeyDown
pero el problema q solo me valida por cada tecla q presione
ejm:
If e.KeyCode = Keys.Control Then
' bloque de instruciones
end if

el problema es q me valida por cada vez q presione una tecla no tengo ni idea como hacerlo para q me valida al presionar teclas juntas espero q me ayuden y tengan un ejm por ahi
  #2 (permalink)  
Antiguo 25/02/2009, 08:19
 
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid, España
Mensajes: 149
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con Keydown

Para estos casos, el evento proporciona propiedades que permiten especificar una tecla usada habitualmente (Control, Alt) además del keycode. Prueba a escribir la condición así:

if e.Control AndAlso e.KeyCode=Keys.F Then
'Bloque de instrucciones
end if

Un saludo
  #3 (permalink)  
Antiguo 25/02/2009, 08:45
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: Problema con Keydown

lo he intentado como lo dices en un formulario vacio
como ejemplo pero no me realiza nada aca esta el codigo

Private Sub Form2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Control AndAlso e.KeyCode = Keys.F Then
MsgBox("Hola")
End If
End Sub
  #4 (permalink)  
Antiguo 25/02/2009, 09:16
 
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid, España
Mensajes: 149
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con Keydown

No me has entendido bien. Ese código no es el que te indiqué. No tienes que comprobar dos veces el KeyCode, sino utilizar la propiedad "Control" de "e", que es del tipo booleano. La condición que has puesto nunca se cumplirá, ya que preguntas porque una misma propiedad tenga dos valores diferentes simultáneamente.

Prueba a cambiar ese código que pegas por este, tal cual te lo pongo

If e.Control AndAlso e.KeyCode = Keys.F Then
MsgBox("Hola")
End If

Un saludo
  #5 (permalink)  
Antiguo 25/02/2009, 09:42
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: Problema con Keydown

Gracias por la Ayuda me Funcione Correctamente si es q tengo un formulario vacio sin controles

pero yo tengo un formulario con controles un ListView un StatusStrip un ToolStrip Botones Label y al agregarlo no me Funciona tu Codigo
como hago para q me funcione en todos los controles de mi formulario
  #6 (permalink)  
Antiguo 25/02/2009, 09:59
 
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid, España
Mensajes: 149
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con Keydown

¿Has incluido el código en todos los manejadores del evento keydown para todos esos controles?¿En qué controles no te funciona?
  #7 (permalink)  
Antiguo 25/02/2009, 10:07
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: Problema con Keydown

Necesariamente tiene q ir en todos los controles o puede haber otra forma ya q si lo hago asi voy a repetir bastante el codigo a menos q cree una funcion
  #8 (permalink)  
Antiguo 25/02/2009, 10:40
 
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid, España
Mensajes: 149
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con Keydown

Lo correcto sería crear una función que encapsulase el código que has puesto aquí, y que esa función fuese llamada desde cada manejador de evento. Esto último es necesario, ya que debes tener en cuenta que a cada control se le puede asignar un comportamiento distinto ante un evento determinado, y tampoco te funcionaría asignar ese código al manejador de un control contenedor como, por ejemplo, la ventana. Así que tienes que ponerlo en todos los controles para los que quieras que ocurra.

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:56.