Windows Forms には水平、垂直スクロールバー(HScrollBar, VScrollBar)コントロールがある。これらはフォーカスが当たっている際にテンキーの上下左右を入力するとスクロールする。この動作をなくしてマウス操作時だけスクロールするようにしたい。 すんなりは行かない。 キー操作を制御するプロパティは存在しないし、派生クラスを作ってキー操作処理自体を無効化してしまうと親コントロールへのキー操作の伝搬も止まってしまって都合が悪い。 仕方ないのでソースコードを眺めてキー入力に伴うスクロールのメッセージだけ処理しないようにした。 かなりいい加減なハックなのでそのうち動かなくなるか…