Microsoft.NET Framework では、System.Windows.Forms という名前空間に Form クラスがあり、そこで多くのイベントが定義されています。イベント KeyPressed は、フォーム自体が入力フォーカスを持っている間にキーボードのキーが押された瞬間に発生します。しかし、フォームに入力フォーカスがあるかどうかに関係なく、いつでもキーが押されたときに何かが起こるようにしたい場合は、タイマーを実行し、getKeyState または user32.dll から GetAsyncKeyState 関数を dllimport して、知ることができます。いつでもキーが押されたとき。
同じ user32.dll 関数とタイマーを使用して、フォームの MouseDown イベントがある場合とない場合で同じことをマウスで実行できますが、マウス ホイールを上下にスクロールすると、フォームの MouseDown イベントで何かが起こるようにプログラムできます。 .
Delta は、MouseEventArgs でのマウス ホイール イベントの値ですが、マウス ホイールが上下にスクロールされた場合に発生するだけでなく、MouseEvent を使用してそのフォームにフォーカスを入力する必要があります。
フォームに依存したくありません。マウス ホイールの状態を取得するために GetKeyState 関数または GetAsyncKeyState 関数に与える整数がわからないので、タイマーが頻繁に呼び出す関数の if でコードを実行できます。
私は何をすべきか?どの整数ですか?「デルタ」を返すことができる user32 または他の dll からの他の関数はありますか? 分かると嬉しいので回答お願いします!:D