.NETでWinFormアプリをC#で製作中です。
Visual Studio Community 2017を使用しています。
テキストボックスやDataGridViewなどがアクティブじゃなくてもマウスカーソルが乗ればマウスホイールでの上下スクロールが効いて欲しかったりしますよね。
そこで検索してこちらの「MessageForwarder」クラスを作成して使用する方法を試すと見事に実現できました。
https://social.msdn.microsoft.com/Forums/vstudio …
しかし困ったことに、メインフォーム「FormA」の「TextBoxA」でMessageForwarderクラスを利用すると、「FormA」から呼び出した別フォーム「FormB」の「TextBoxB」が「TextBoxA」の上に重なっていると、マウスホイール使用時に「TextBoxA」を優先してスクロールさせてしまいます。
こういう場合、どう対処すれば良いでしょうか?
考え方としては、FormAからFormBをnewしてShowしたタイミングでMessageForwarderクラスの効果を何かしらの記述で無効にして、FormBを閉じたらまたMessageForwarderクラスの効果を有効にする、という感じでしょうか。
(FormAのTextBoxAさえMessageForwarderクラスの効果が反映されればOKなので)
アドバイスありましたらぜひお願いします。m(_ _)m
No.1ベストアンサー
- 回答日時:
>こういう場合、どう対処すれば良いでしょうか?
どのように仕様を決めるかでしょうね。
(因みに私はアクティブでない処がスクロールするのは好まないですが…)
第三者から見ると、「FormB」の「TextBoxB」だけが特別扱いなのか?
例えば「FormB」に「リストボックス」が有る場合は?
…疑問が涌きます。
思うに、アプリケーション内でフォーカスが移動している限りは「MessageForwarder」の効果は無い、のが自然に感じます。
何れにしても PreFilterMessage 辺りの条件に追加/修正かな…
davidfoxさん、ご回答ありがとうございます!
確かに私もアクティブでないフォームのコントロールがスクロールするのは好まないですが、そこは妥協で影響してもしなくてもどちらでも良いかなという感じではあります。
(職場のP4Vで挙動を確認してみたらチェンジリストウインドウを開いている間にも本体のツリーパネル上でホイールが効いたりしていて、そんなものかと思いました)
単純に今回作成しているFormBがスクロールするコントロールが1つだけなので、そこだけ何とかなれば良いと考えています。
>何れにしても PreFilterMessage 辺りの条件に追加/修正かな…
なるほど、この辺りちょっと触ってみたいと思います!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- InternetExplorer(IE) Edge でマウスの真ん中のボタン(ミドルボタン)を押すと、スクロールするのを無効にしたい 2 2023/06/11 05:05
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- マウス・キーボード キーボード設定で困っています。長文です。 2 2022/12/10 12:44
- マウス・キーボード マウスのないパソコン 9 2022/03/30 10:53
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Chrome(クローム) Google Chrome スクロールできない 4 2022/10/17 16:49
- Windows 10 画面上の[タスクバー]の位置の変更 1 2022/06/12 21:10
- Chrome(クローム) 【Google】「同期は有効です」と表示されているがブックマークが同期されていない 2 2022/11/17 13:32
- Word(ワード) surfaceの画面を別モニターに映す方法を教えてください。 3 2022/05/19 17:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グローバルIPとプライベートIP...
-
配列の重複する値とその個数を...
-
java eclipse 型に解決できません
-
下記の問合せを行うクエリを、P...
-
packageとimport の違いって?
-
dllと同じプロジェクトにする方法
-
「天声人語」をインターネット...
-
コンボボックスのマウスホイー...
-
Excelでクラス分け表を作成した...
-
自作のクラスファイルがインポ...
-
IPアドレスのクラスAを取得して...
-
main()を持つクラスが2つ以上...
-
VBソースからクラス仕様書作成
-
サーブレット実行時のエラー
-
どこからも呼ばれていない無意...
-
C#で OpenSSLで3DES
-
VBAもしくはVB6:クラスの中で...
-
フォームの呼び出しについて
-
BSアンテナのサイズ(札幌)に...
-
河合塾のクラス分けについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
河合塾のクラス分けについて
-
同じクラスにならない確率を教...
-
3年間同じクラスになる確率
-
「天声人語」をインターネット...
-
グローバルIPとプライベートIP...
-
配列の重複する値とその個数を...
-
java eclipse 型に解決できません
-
同一パッケージにあるクラスが...
-
私はクラスLINEにまだ入れてな...
-
老い先短い ジジィ が ふと 思う...
-
自作のクラスファイルがインポ...
-
どこからも呼ばれていない無意...
-
main()を持つクラスが2つ以上...
-
数学の計算問題。 3年間同じク...
-
クラス見てから 女の子5人 ネタ...
-
javaのコンパイルができません...
-
1 つのヘッダファイルに複数の...
-
重複エラーを解決するには
-
IPアドレスの3バイト目の呼び方
-
packageとimport の違いって?
おすすめ情報