Me gustaría configurar teclas de acceso rápido en mi formulario Windows Forms. Por ejemplo, Ctrl + N de una nueva forma y Ctrl + S para guardar. ¿Cómo haría esto?Cómo configurar teclas rápidas para formularios de Windows Forms
Respuesta
Conjunto
myForm.KeyPreview = true;
Crear un controlador para el evento KeyDown:
myForm.KeyDown += new KeyEventHandler(Form_KeyDown);
Ejemplo de controlador:
// Hot keys handler
void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.S) // Ctrl-S Save
{
// Do what you want here
e.SuppressKeyPress = true; // Stops other controls on the form receiving event.
}
}
En primer lugar, es necesario controlar el evento KeyDown, y luego se puede empezar a ver hacia fuera para sus modificadores:
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (Control.ModifierKeys == Keys.Control && e.KeyCode == Keys.S)
{
//Do whatever
}
}
Por supuesto, es necesario asegurarse de que su forma se suscribe al evento KeyDown.
me gustaría un evento KeyDown
para el formulario y un poco de código como este:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == (Keys.Control | Keys.N))
{
CreateNew();
}
}
¿alguien puede decirme qué es esto CreateNew()? ¿Es una función incorporada? – Riya
@ riya7887: Es solo un ejemplo. No es un método incorporado. Puede crear dicho método y poner todo el código relacionado. –
Si está tratando de vincularlos a los elementos del menú en su aplicación, entonces no necesita ningún código. En el elemento de menú, puede simplemente configurar la propiedad de la tecla de método abreviado y ejecutará el mismo evento que haya configurado para hacer clic en su elemento de menú.
Puede configurarlo utilizando un menú oculto también, si lo desea. Simplemente establezca la propiedad de menu.visible = false;
También puede anular ProcessCmdKey
en su tipo derivado Form
así:
protected override bool ProcessCmdKey(ref Message message, Keys keys)
{
switch (keys)
{
case Keys.B | Keys.Control | Keys.Alt | Keys.Shift:
// ... Process Shift+Ctrl+Alt+B ...
return true; // signal that we've processed this key
}
// run base implementation
return base.ProcessCmdKey(ref message, keys);
}
yo creo que es más adecuado para teclas de acceso rápido. No es necesario KeyPreview
.
Si su ventana tiene un menú, puede utilizar la propiedad ShortcutKeys
de System.Windows.Forms.ToolStripMenuItem
:
myMenuItem.ShortcutKeys = Keys.Control | Keys.S;
En Visual Studio, se puede configurar en la página de propiedades del elemento de menú, también.
- 1. Cómo configurar enlaces de teclas Super/Windows/mod4 para eclipse
- 2. API más rápida para representar texto en formularios Windows Forms?
- 3. Autenticación de formularios web.config configurar
- 4. Comandos de teclas rápidas para Silverlight en MVVM?
- 5. Windows Forms Test Automation
- 6. Capturar teclas rápidas en los navegadores
- 7. teclas rápidas globales en una aplicación Qt multiplataforma
- 8. Learning Windows Forms vs. Windows Presentation Foundation
- 9. Nombres de teclas bonitas en C# (Formularios)
- 10. Cómo estructurar aplicaciones de Windows Forms de VB.NET
- 11. Ejemplos de MVP para Windows Forms
- 12. Las teclas rápidas de Eclipse no funcionan en XFCE
- 13. Windows Forms - ErrorProvider + DataGridView
- 14. Fuente predeterminada para la aplicación Windows Forms
- 15. ¿Cómo modificar el enlace de teclas rápidas para los elementos del menú del sistema de mathematica?
- 16. Windows Forms: capturar MouseWheel
- 17. Elegir las fuentes para una aplicación de Windows Forms
- 18. Windows Forms Control e iframes de WebBrowser
- 19. Interfaz web para la aplicación Windows Forms
- 20. Ejecución asíncrona en formularios de Windows
- 21. Desventajas para alojar Windows Forms Control en la aplicación WPF?
- 22. botón Escape para cerrar Windows Forms forman en C#
- 23. ¿Cómo acelerar la inicialización de una aplicación de cliente .NET (Windows Forms o WPF)?
- 24. WPF o Windows Forms
- 25. Windows Forms Separator Control
- 26. ASP.NET Formularios mixtos/Autenticación de Windows
- 27. ¿Cómo implementar Custom Forms Designer?
- 28. Borrando DrawRectangle en Windows Forms
- 29. Las teclas y pestañas Alt no funcionan en Windows Forms abierto desde una aplicación WPF
- 30. Jump Lists y Windows Forms
Oh, usted está en lo correcto. Olvidé establecer la propiedad 'KeyPreview', que es necesaria para este caso. +1. –