使用に同意するものと見なされます。コード提供終了済みコンテンツ申し訳ありません。リクエストされたコンテンツは削除されています。自動的にリダイレクトされます。C#質問0サインインして投票こんにちはC#&Winformsでアプリを作っています。フォーム上にTreeView、DataGridView、TextBox(複数行)があります。各コントロールは表示されるコンテンツ量によってスクロールバーが表示されます。このフォーム上でマウスのホイールをコロコロした時に、フォーカスがあるコントロールではなくマウスオーバー(エンター?)しているコントロールのスクロールが動作するようにしたいと思っていますが良い方法が見つかりません。このようなニーズに対応するための一般的な方法などあれば教えて下さい。各コントロールのMouseEnterでフォーカスを自分自身に設定する方法で対応を考えましたが、フォーカス自体が移動してしまうことに不都合がありこの方法は却下となりました。いうのは、フォーム上には上記コントロール以外にもう一つTextBox(一行)が存在しています。このTextBox(一行)にフォーカスがある状態(カーソルがある状態)でTreeView、DataGridView、TextBox(複数行)にマウスオーバーするとそれらのコントロールにフォーカスが移動してしまいTextBox(一行)からフォーカスが外れ(カーソルが消え)てしまいます。その結果キーボードで文字入力を行ってもTextBox(一行)に文字が入力されなくなってしまうのです。このTextBox(一行)に文字を入力するためにはマウスでクリックした後、TreeView、DataGridView、TextBox(複数行)にマウスオーバーしないように注意しなければいけないというストレスをユーザーに与えることになってしまうため対応方法としては適切ではないと判断しました。APIのSetScrollInfo・GetScrollInfoの利用も検討したのですが、TreeViewに対してSetScrollInfoでスクロールを移動してあげるとスクロールバーのみが移動してTreeView内のコンテンツがそれにあわせてスクロールしないという現象が起きています。DataGridViewに関してはSetScrollInfoが効きませんでした。そのためSetScrollInfo・GetScrollInfoについてもまだ方法が確立できていない状況です。同じ対応をされたことがある方がいらっしゃいましたら是非具体的な方法を教えていただけたらと思います。試していませんが、以下のページにあるNativeWindowを継承したバージョンのクラスで、スマートに実現できるのではないかと思います。試していませんが、以下のページにあるNativeWindowを継承したバージョンのクラスで、スマートに実現できるのではないかと思います。7:51返信|引用モデレータ0サインインして投票trapemiyaさん情報をありがとうございました!教えていただいたURLを参考にやりたいことが実現できました。参考までに対応方法を載せておきます。}}後はコンストラクタ内などで下記のように対象のコントロールを渡すようにMessageForwarderをnewしてあげればOKです。}上記のようにした場合、「treeview1」「datagridview1」「textbox1」にマウスオーバーしてホイールをコロコロするとそれぞれのコントロールがスクロールするようになります。ありがとうございました。