2016-12-13 4 views
0

私はWinFormsでキーダウンイベントキャッチを実装しようとしましたが、データがメソッドに向いていないようです。私はフォーム上にいくつかボタンを持っており、矢印キーを押したときにそれらの間をサイクリングしています(これらは私がキーダウンデータを取得しようとしているキーです)。キーダウンイベントを使用しようとしている勝ちフォームでゲームを作る

私がやったことは、各ボタン(各キーごとに1つのボタン)に行き、キーダウンメソッドのメソッドを生成することでした。

+4

コード?あなたのコードはどこですか?今日、あなたはUnity3Dでゲームをする方が良いです。まだC#が、結果を得るために必要な作業のほんの一部です。 –

+0

'KeyPreview = true;'が 'Form'コンストラクタ内にあると思います。私は正しい? –

+2

いくつかのコードを追加してください。 –

答えて

1

ここに私があなたを助けるかもしれないと思うコードがあります。ボタンを使用する代わりに、フォームのProcessCmdKey(どのキーがフォーム上で押されたかを参照する)をオーバーライドできます。

PreviewKeyがtrueに設定されていることを確認してください。これにより、コントロールによってキャッチされたイベントがフォームに渡されます。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { 
    //Move in the right direction relative to the key pressed 
    switch (keyData) { 
     case Keys.Up: 
      //Do stuff 
      break; 

     case Keys.Down: 
      //Do stuff 
      break; 

     case Keys.Left: 
      //Do stuff 
      break; 

     case Keys.Right: 
      //Do stuff 
      break; 
    } 

    //Call the base class' ProcessCmdKey method. 
    return base.ProcessCmdKey(ref msg, keyData); 
} 
関連する問題