¿Cómo hago una tecla de acceso directo al botón en C# aplicación de Windowstecla de acceso directo a la tecla de aplicación de C# de Windows
Respuesta
conjunto de propiedades UseMnemonic del botón para verdadero y añadir un símbolo de unión (&) justo antes de la carta en la propiedad Text del botón quiero usar para la tecla de acceso rápido.
El usuario presionar Alt + para activar la tecla de acceso directo.
Anular Formulario ProcessCmdKey
. Si encuentra una pulsación de tecla que le guste, llame al mismo método que el botón.
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.Control | Keys.X))
{
DoSomething();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
private void button1_Click(object sender, EventArgs e)
{
DoSomething();
}
private void DoSomething()
{
MessageBox.Show("hi!");
}
EDITAR: método de Jay es mejor si se puede encontrar una tecla de acceso apropiado.
creo que esto es lo que quiere:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
//Do whatever you want here...
}
}
por supuesto se puede cambiar Keys.Enter
a la tecla que desea.
Además, existen propiedades AcceptButton y CancelButton en todas las formas. Si va a restringir el uso de teclas rápidas para ingresar y escapar de los botones, que a su vez deben invocar ciertos botones, le recomiendo que considere el uso de estas propiedades.
Aplicación de Windows y tecla de método abreviado son sinónimos. La gente prefiere usar teclas de método abreviado para una actividad más rápida. Suponga que está en un cuadro de texto y desea presionar F5 para volver a cargar el formulario. No desea mover el cursor del mouse. Entonces, lo que harás es agregar el evento "Key Down" al cuadro de texto. Pero, si está en un cuadro de texto diferente o en un botón, eso no funcionará. Por lo tanto, agregará el evento "Key Down" a su formulario.
Pero necesita habilitar una propiedad para que funcione correctamente y ese es el truco.
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F5)
{
btnRefresh_Click(null, null);
}
}
Pero oro truco es, en la ventana de propiedades del formulario hacer los siguientes cambios:
KeyPreview = True
disfrutar de la programación.
Aunque esta publicación es súper antigua aquí es una forma más sencilla de hacerlo, el código es bastante pobre pero hace el trabajo muy bien.
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
button1.PerformClick();
}
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Alt && e.KeyCode == Keys.W)
{
//do something
}
}
Sobre la base de la respuesta de Micheal aquí es una versión más elegante si no va a usar las teclas combinadas:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch(keyData)
{
case Keys.F2:
// do something...
return true;
case Keys.F3:
// do something...
return true;
case Keys.F4:
// do something...
return true;
default:
return base.ProcessCmdKey(ref msg, keyData);
}
}
- 1. Tecla de acceso directo usando C#
- 2. cómo detectar cuando una tecla de acceso directo (tecla de acceso directo) se presiona
- 3. Asignar tecla de acceso directo a un botón en WPF
- 4. Responder a la "tecla de acceso directo" de toda la aplicación en Qt
- 5. Agregar una tecla de acceso rápido a mi aplicación Delphi
- 6. clave de AutoHotKey SECUENCIA, no solo tecla de acceso directo de una sola tecla
- 7. Registre más de una tecla de acceso directo con RegisterHotKey
- 8. Emacs tecla de acceso directo para alinear los signos igual
- 9. Anulación del registro de la tecla de acceso directo Alt-Tab en Windows 7
- 10. tecla de acceso rápido global en la aplicación de consola
- 11. Tecla de acceso rápido (no global) en Windows Forms .NET
- 12. Tecla de acceso directo a todo el sistema para una aplicación
- 13. tecla de acceso directo/atajo para: "¿Qué complemento es este?"
- 14. Tecla de acceso directo para seleccionar palabra en Eclipse
- 15. ¿Cuál es la tecla de acceso directo para saltar a la declaración en Emacs?
- 16. ¿Cuál es la tecla de acceso directo para volver a la pestaña anterior?
- 17. Tecla de acceso web.config de código subyacente
- 18. Tecla de acceso rápido para detener REPL?
- 19. Tecla de acceso directo para navegar de código subyacente a SourceView
- 20. Tecla de acceso directo para expandir el bloque/región comprimido seleccionado en Visual Studio C#
- 21. ¿Qué es la tecla de acceso directo de autoalineación en Eclipse?
- 22. tecla de acceso directo botón/para comentar un bloque de código en Visual Studio 2008 Express
- 23. Prueba de la tecla 'Ctrl' en C#
- 24. ¿Cómo puedo tecla de acceso directo directamente a Archivo ficha Buscar en Eclipse
- 25. ¿Cuál es la tecla de acceso directo en Visual Studio para limpiar toda la solución?
- 26. Capturando la tecla de Windows en C# (wpf)
- 27. ¿Liberación de tecla de acceso rápido global (clave)? (API WIN32)
- 28. tecla de acceso directo de declaración de Eclipse F3 no puede funcionar en mac os
- 29. Emacs: ¿cuál es la tecla de acceso directo para borrar el búfer?
- 30. ¿Cuál es la tecla de acceso directo para saltar entre ventanas divididas en Visual Studio 2008
No creo que se hace el trabajo, porque esto no se compilará . –