2010-10-29 8 views
5

Ho un'app .NET con pulsanti che utilizzano numeri per mnemonici. (ad esempio "& 1 - Controlla" e "& 2 - Contanti") Quando premo Alt + 1, mi aspetto che venga fatto clic sul pulsante Verifica. Funziona quando uso i tasti numerici standard su una tastiera. Tuttavia, quando premo Alt + 1 utilizzando il tastierino numerico, Windows riprende e inserisce il simbolo corrispondente al "codice alt" di 1. Vedere http://alt-codes.org/list/. Come posso evitare che ciò accada nella mia applicazione?Come posso evitare i codici Alt in un'app .NET?

Grazie!

+2

Si potrebbe semplicemente usare mnemonici più naturali, vale a dire usando le lettere chiave delle opzioni in fase di scelta. – Lazarus

risposta

2

L'operazione può essere eseguita abilitando KeyPreview nel modulo e gestendo l'evento KeyUp. Il seguente codice bypassa la funzionalità codici alt Windows e fa sì che il pulsante per fare clic quando ho colpito Alt + Numpad1:

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

Questa combinazione Alt + numkey è una funzionalità di Windows (molto utile), non è possibile ignorarla.
Ho provato un po 'di tempo fa mentre lavoravo a un gioco (sapete ... le scorciatoie della barra delle abilità? ☺) e ho fatto delle ricerche ... È impossibile.
Sarei molto felice di vedere un modo anche per questo!

+0

Holy! @ # $ (Non posso commentare altre risposte), sono felice che tu abbia trovato un modo! : O ancora, penso che sia un bug. ☺ Modifica: i ganci della tastiera non funzionavano nemmeno per me ... – Vercas

1

Un modo possibile per fare ciò è utilizzare keyboard hooks, intercettare i tasti premuti e quindi agire come si ritiene opportuno. Ora, risolverà il problema precedente e impedirà al sistema operativo di inserire il codice, non lo so.

Problemi correlati