[C#]WinFormでゲーム作成時、カーソル入力を取得する方法

Windows上で.Net Frameworkを使用してゲームなどを作るとき、キー入力を取得したい場合があります。
このような場合、画面内のTextBoxなどにフォーカスが当たっていると、キー入力をフォーカスが当たったコントロールが処理してしまいます。

このような場合は、FormのKeyPreviewをtrueにするとよいです。
実際のキー入力チェック処理は、FormのKeyDownイベントで取得すると便利です。

using System;
using System.Windows.Forms;
 
namespace Test01 {
    public partial class Form1 :Form {
        public Form1() {
            InitializeComponent();
        }
 
        private void Form1_Load( object sender, EventArgs e ) {
            // Formコントロール自身がキー入力を取得可能とする
            this.KeyPreview = true;
 
        }
 
        private void Form1_KeyDown( object sender, KeyEventArgs e ) {
            // 入力されたキーを判定する
            switch ( e.KeyCode ) {
                case Keys.Up:
                    textBox1.Text = "[UP]";
                    break;
                case Keys.Down:
                    textBox1.Text = "[DOWN]";
                    break;
                case Keys.Left:
                    textBox1.Text = "[LEFT]";
                    break;
                case Keys.Right:
                    textBox1.Text = "[RIGHT]";
                    break;
                default:
                    textBox1.Text = "";
                    break;                        
            }
        }
 
    }
}

関連記事

コメントを残す

メールアドレスが公開されることはありません。