2016-04-03 6 views
0

ユーザーがtextBoxのキーを押したときにテキストボックスにユーザーが押したキーが表示されるので、変数として保存して別の場所で使用できます。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(); 
} 

EDIT:これはKeyEventArgs.KeyCode

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

をサポートしていない。これはあなたのCapsLockキーのようなものを与え、などをシフト、しかし、の 場合になりますWPFで忘れました英数字キーを入力すると、当時のシフトなどの状態 を教えてくれないので、自分でそれを把握する必要があります。

代わりにTextInputイベントを使用します。 e.Textに実際に入力されたテキストが含まれます。これにより、英数字キーの正しい文字は になりますが、 文字は制御できません。

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

+0

KeyEventArgsにKeyCodeの定義が含まれていないというエラーを取得します。 – Simon

+0

答えが更新されました。 –

+0

これは完璧に感謝します! – Simon

関連する問題