2016-04-03 41 views
0

我試圖在用戶按下文本框中的某個鍵時,文本框將顯示用戶按下的鍵,以便將其保存爲變量並在其他地方使用。將textBox.text更改爲任意按鍵

現在我有這個和這個作品

private void textBox_PreviewKeyDown(object sender, KeyEventArgs e) 
    { 
     if(e.Key == Key.A) 
     { 
      textBox.Text = "A"; 
     } 
    } 

但它僅限於一個關鍵是有沒有什麼辦法讓它任意鍵?

+0

你有沒有嘗試這個。 'textBox.Text = e.Key.ToString();' –

回答

0

您可以將KeyEventArgs e.KeyCode轉換爲char。

private void textBox_PreviewKeyDown(object sender, KeyEventArgs e) 
{ 
    Char ch = (Char)e.KeyCode; 
    textBox.Text = ch.ToString(); 
} 

編輯:忘了這是WPF不支持KeyEventArgs.KeyCode

private void textBox_PreviewKeyDown(object sender, KeyEventArgs e) 
{ 
    textBox.Text = e.Key.ToString(); 
} 

這會給你喜歡的CapsLock的東西和Shift等,但是,在 案件字母數字鍵,它不能告訴你當時的班次等狀態 ,所以你必須自己弄清楚。

第二種方法是使用TextInput事件,其中 e.Text將包含輸入的實際文本。這會給你 字母數字鍵的正確字符,但它不會給你控制 字符。

參考:https://stackoverflow.com/a/486967/6138713

+0

獲取錯誤'KeyEventArgs不包含KeyCode的定義' – Simon

+0

已更新的答案。 –

+0

這工作完美謝謝! – Simon