2012-02-16 4 views
0

Я пытаюсь создать приложение, которое изменит значение кнопки, которая была нажата. Пример: Если нажата кнопка C на клавиатуре, она должна вывести значение «7». Значение кнопок должно изменяться только до тех пор, пока приложение работает.Как переназначить клавиши клавиатуры

Мой код до сих пор:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     this.KeyDown += new KeyEventHandler(Form1_KeyDown); 

    } 

    void Form1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.C) 
     { 


     } 
    } 
} 

Вся помощь будет очень цениться. Thanks

+2

ли вы имеете в виду глобально в Windows, или просто в вашем приложении? – Justin

+0

Я хочу, чтобы он был глобально, но только до тех пор, пока приложение открыто –

ответ

0

Если это касается только вашего приложения, я бы продолжил, сделав хэш-карту ключей для их привязки. (KeyCode => Your-Binding)

Если вы хотите целочисленное значение, как в вашем примере, вы будете иметь карту как:

Dictionary<KeyCode,Integer> keyMap = new Dictionary<KeyCode,Integer>(); 

void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if(keyMap.ContainsKey(e.KeyCode) { 
    int boundValue = keyMap[e.KeyCode]; 
    // continue with what you want to do here 
    } 
} 
+0

Hi Onresolve, я хочу сделать его глобально, поэтому пока приложение открыто, этот ключ будет иметь значение, которое я установил. –

+0

Спасибо за помощь, это прекрасно работает в рамках приложения –

Смежные вопросы