2016-08-19 17 views
-3

スペースバーを押したときに変数を増分します。 これはこれまで私が試したことであり、動作していないようです。エラーメッセージはないので、何が間違っているのか分かりません。スペースバーの入力がありません

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
    } 
    int Coins = 0; 
    int ButtonKeyNumber = (int)Key.Space; 

    private void textBlockCoins_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) 
    { 
     if (e.KeyValue == ButtonKeyNumber) 
     { 
      Coins = Coins + 1; 
      textBlockCoins.Text = "You Have " + Coins + "Coins"; 
     } 
    } 
} 

私がコードを実行すると、テキストボックスには "You Have 0 Coins"と表示されます。 変数ButtonKeyNumberは、どのキーを押さなければならないのかを簡単に変更できるようにするためにそこにあります。

+0

は、なぜあなたはまったくの変数が必要なのでしょうか? 'Key.Space'と直接比較して、' e.KeyValue'でどのキーを取得しているのかをデバッガを使って調べてください。 –

+0

KeyDownイベントコールバックは実際に呼び出されていますか?正しいコントロールにフォーカスがあることを確認してください(最初にtextBlockCoinsをクリックして)KeyDownイベントを受け取ります。 'if'にブレークポイントを置き、実際にe.KeyValueの値が何であるかを確認してください! – khargoosh

+0

'textBlockCoins_KeyDown'トリガーがありましたか? –

答えて

0

あなたは間違ったKeysクラスを使用している可能性があります。 System.Windows.Forms.Keysクラスを使用します。これはKeyEventArgs.KeyCodeによって提供される種類です。代わりにこのようなものを試してみてください。

スペースキーを押したときに正しいコントロールにフォーカスがあることを確認する必要があります。

0

設定フォーム上の真のKeyPreviewの、あなたはそれをキャッチします:MSDN

Original

関連する問題