Estoy haciendo una aplicación de Windows (WinForms) y me gustaría que mi aplicación llame a un método cuando el usuario presiona F5 - esto debería funcionar sin importar lo que el usuario esté haciendo, pero deben usar el programa - No quiero usar ganchos globales - ¿Alguna idea?Agregar una tecla rápida F5 en C#
Respuesta
Si solo tiene un formulario que puede tener foco, puede establecer la propiedad KeyPreview
de ese formulario en true
y manejar el evento KeyPress
.
La propiedad KeyPreview
hará que el formulario reciba todas las pulsaciones de teclas, sin importar qué control del formulario tenga el foco de entrada.
Comprueba las propiedades Form.KeyPreview
, que le permitirá a atrapar todas KeyDown
, KeyUp
y KeyPress
eventos en el nivel de formulario antes de permitir que sean procesados por elementos individuales.
Esto sólo funciona en el caso de aplicaciones triviales que son una forma única y una de las formas los niños siempre tienen enfoque es más como un truco que funciona la mayor parte del tiempo que una solución. –
Anulación de ProcessCmdKey en el formulario principal y buscar la forma F5.
protected override bool ProcessCmdKey (ref Message msg, Keys keyData)
{
bool bHandled = false;
// switch case is the easy way, a hash or map would be better,
// but more work to get set up.
switch (keyData)
{
case Keys.F5:
// do whatever
bHandled = true;
break;
}
return bHandled;
}
Es posible que desee agregar un caso ** predeterminado ** en el conmutador para que la clase base eche un vistazo a la clave en lugar de simplemente devolver falso: 'predeterminado: return base.ProcessCmdKey (ref msg, keyData) ; ' –
- 1. Desactivar F5 en WebBrowser
- 2. Hacer que una tecla se comporte como otra tecla
- 3. cómo agregar una acción en la tecla de retorno UITextField?
- 4. Haga una "tecla rápida" para enfocar un cuadro de texto en WPF
- 5. Tecla siguiente en C# Dictionary
- 6. Agregar una tecla de acceso rápido a mi aplicación Delphi
- 7. ¿Puedo asignar una tecla rápida global a una aplicación Adobe AIR?
- 8. ¿Una buena manera de hacer una división rápida en C++?
- 9. Una función hash rápida para una cadena en C#
- 10. ¿Es posible capturar F5 en una aplicación de Silverlight?
- 11. ¿Cómo puedo reasignar F5 en Visual Studio?
- 12. serialización C++ más rápida?
- 13. Prueba de la tecla 'Ctrl' en C#
- 14. Capturar varias pulsaciones de tecla en C#
- 15. ¿Cómo puedo vincular la tecla F5 para actualizar el Explorador de objetos en SQL Server Management Studio?
- 16. ¿Forma rápida de crear una lista de valores en C#?
- 17. Cómo realizar una solicitud web rápida en C#
- 18. Implementación rápida de gradiente y descenso en una biblioteca C++?
- 19. SQL Server Management Studio SSMS intenta "guardar en el archivo" en lugar de ejecutarlo en F5
- 20. C#: Cómo agregar subelementos en ListView
- 21. Implementación rápida de MD5 en C++
- 22. Enumeración rápida Vs NSEnumerator en Objective-C
- 23. ¿Qué es diferente entre visual studio F5, ctrl + F5 o ejecutándose fuera de visual studio?
- 24. ¿Tabla hash más rápida en C# que en C++?
- 25. ¿Diferencia entre f5, CTRL + F5 y haga clic o actualice el botón?
- 26. Una cola rápida en Java
- 27. C# agregar una capa a una imagen
- 28. implementación rápida, limpia, C, timsort?
- 29. Agregar una nueva línea en una cadena en C#
- 30. Filtro de mediana rápida en C++
+1 por señalar que sólo va a trabajar para cada forma se establece que la propiedad de y no la aplicación mundial –