1

C# では、ユーザーが正しいキーを押してプレーヤーが右に移動するかどうかを確認しようとしていますが、試してみると、キープレスが登録されません。

private void KeyPressed(object sender, KeyPressEventArgs e)
{
      if(e.KeyChar == Convert.ToChar(Keys.Right))
      {
              MessageBox.Show("Right Key");
      } 
} 

MessageBox を表示しない

これは、左/上/下でも機能しません

ただし、それを置き換えると

if(e.KeyChar == Convert.ToChar(Keys.Space))

できます。

私は何か間違ったことをしていますか?

4

2 に答える 2

4

KeyDown矢印などのイベントを使用する必要があります。

private void KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Up || e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)
    {
    }
}

矢印キーは文字でKeyPressedはないため、 は使用しません。

于 2013-11-06T22:49:48.757 に答える
2

矢印キーは keyUp イベントにあります。

Keys.Up、Keys.Down、Keys.Left、Keys.right

これらは KeyPressEventArgs によってトリガーされません。

于 2013-11-06T22:48:53.437 に答える