Eventos Key
La clase KeyEventArgs
en C# proporciona información sobre eventos de teclado, como pulsaciones de teclas. A continuación, se detallan algunas de las propiedades más comunes de KeyEventArgs
junto con ejemplos de cómo utilizarlas:
- KeyCode:
- Descripción: Obtiene el código de la tecla que se ha pulsado.
- Ejemplo:
private void MiFormulario_KeyDown(object sender, KeyEventArgs e) { Keys tecla = e.KeyCode; // Utilizar la tecla según sea necesario }
- KeyValue:
- Descripción: Obtiene el valor numérico de la tecla que se ha pulsado.
- Ejemplo:
private void MiFormulario_KeyDown(object sender, KeyEventArgs e) { int valorTecla = e.KeyValue; // Utilizar el valor de la tecla según sea necesario }
- Modifiers:
- Descripción: Obtiene un valor que indica qué teclas modificadoras (Ctrl, Alt, Shift) están presionadas al mismo tiempo que la tecla principal.
- Ejemplo:
private void MiFormulario_KeyDown(object sender, KeyEventArgs e) { Keys modificadores = e.Modifiers; if (modificadores.HasFlag(Keys.Control)) { // La tecla Ctrl está presionada } if (modificadores.HasFlag(Keys.Alt)) { // La tecla Alt está presionada } if (modificadores.HasFlag(Keys.Shift)) { // La tecla Shift está presionada } }
- Shift:
- Descripción: Obtiene un valor que indica si la tecla Shift está presionada.
- Ejemplo:
private void MiFormulario_KeyDown(object sender, KeyEventArgs e) { if (e.Shift) { // La tecla Shift está presionada } }
- Control, Alt:
- Descripción: Propiedades booleanas que indican si las teclas Control o Alt están presionadas.
- Ejemplo:
private void MiFormulario_KeyDown(object sender, KeyEventArgs e) { if (e.Control) { // La tecla Control está presionada } if (e.Alt) { // La tecla Alt está presionada } }
Estas son algunas de las propiedades más utilizadas de la clase KeyEventArgs
. Puedes utilizar estas propiedades en eventos como KeyDown
o KeyUp
para personalizar la lógica de tu aplicación según las pulsaciones de teclas.
En estos ejemplos, utilizaré el evento KeyDown
y el evento KeyUp
para ilustrar situaciones más complejas.
Ejemplo 1: Combinación de teclas con Modificadores
private void MiFormulario_KeyDown(object sender, KeyEventArgs e)
{
// Verificar si se presionó Ctrl + Shift + A
if (e.Control && e.Shift && e.KeyCode == Keys.A)
{
lblResultado.Text = "Se presionó Ctrl + Shift + A";
}
}
Este ejemplo muestra cómo detectar la combinación de teclas Ctrl + Shift + A.
Ejemplo 2: Repetición de tecla
private void MiFormulario_KeyDown(object sender, KeyEventArgs e)
{
// Verificar si se está manteniendo presionada la tecla A
if (e.KeyCode == Keys.A && e.Modifiers == 0 && e.IsRepeat)
{
lblResultado.Text = "La tecla A se mantiene presionada";
}
}
Este ejemplo muestra cómo detectar si una tecla se mantiene presionada utilizando la propiedad IsRepeat
.
Ejemplo 3: Cambio de teclas modificadoras
private Keys ultimaTeclaModificadora = Keys.None;
private void MiFormulario_KeyDown(object sender, KeyEventArgs e)
{
// Verificar si cambió la tecla modificadora
if (e.Modifiers != ultimaTeclaModificadora)
{
lblResultado.Text = $"Se cambió la tecla modificadora a {e.Modifiers}";
ultimaTeclaModificadora = e.Modifiers;
}
}
Este ejemplo muestra cómo detectar cambios en las teclas modificadoras (Ctrl, Alt, Shift).