2010-10-29 15 views
5

Tengo una aplicación .NET con botones que usan números para mnemónicos. (por ejemplo, "& 1 - Comprobar" y "& 2 - Efectivo") Cuando presiono Alt + 1, espero que se haga clic en el botón Comprobar. Esto funciona cuando uso las teclas numéricas estándar en un teclado. Sin embargo, cuando pulso Alt + 1 usando el teclado numérico, Windows toma el control e inserta el símbolo que coincide con el "código alternativo" de 1. Consulte http://alt-codes.org/list/. ¿Cómo puedo evitar que esto suceda en mi aplicación?¿Cómo puedo evitar códigos Alt en una aplicación .NET?

Gracias!

+2

Simplemente podría utilizar mnemotécnicos más naturales, es decir, usando cartas clave de las opciones que se eligen. – Lazarus

Respuesta

2

Esto se puede hacer activando KeyPreview en el formulario y manejando el evento KeyUp. El siguiente código no pasa por la funcionalidad de códigos alt Windows y hace que el botón para hacer clic cuando golpeo Alt + 1 teclado numérico:

if (e.Alt && e.KeyCode == Keys.NumPad1) 
{ 
    e.Handled = true; 
    button1.PerformClick(); 
} 
1

Esta combinación Alt + numkey es una función de Windows (muy útil), no puede eludirla.
He intentado esto hace un tiempo mientras trabajaba en un juego (ya sabes ... atajos de barra de habilidades? And) y he investigado un poco ... Es imposible.
¡Estaría muy feliz de ver una manera de superar esto también!

+0

Holy! @ # $ (No puedo comentar sobre otras respuestas), ¡me alegra que hayas encontrado la manera! : O aún, creo que es un error. ☺ Editar: Los ganchos de teclado ni siquiera corrieron para mí ... – Vercas

1

Una posible forma de hacerlo sería utilizar keyboard hooks, interceptar las pulsaciones de teclas, y luego actuar como mejor le parezca. Ahora, ¿resolverá el problema anterior y evitará que el SO inserte el código, no lo sé?

Cuestiones relacionadas