イベントではなく、WINAPIを使用してキーを取得する方法です。
ゲームのメインループなどの中で使用します。
namespace Hoge
{
public class Fuga
{
// DLLをインポートする必要がある
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern short GetKeyState(int nVirtKey);
// キーの押しっぱなしを取得する
public static bool IsKeyPress(System.Windows.Forms.Keys keyCode)
{
// GetKeyStateは最上位ビットが1か否かでキー投下の有無を取得できる
return GetKeyState((int)keyCode) < 0;
}
}
}
##注意点
GetKeyStateの戻り値はshort型(符号あり16bit)で、キー投下の判定は最上位ビットが立っているか否かで取得をする。
サイトによっては、戻り値をint型にしていたりキー投下判定が最下位ビットで行ったりしているため、注意が必要である。