0

左側にさまざまなコントロールで構成されるフォームがあり、本体は他のコントロールによって作成された HTML ファイルを表示するブラウザー ウィンドウです。ファイルを生成した後、スクロール ホイールが機能するようにブラウザ ウィンドウにフォーカスを設定しようとしています。

すべてのODD試行ではこれが機能しますが、EVEN試行では機能しません。

出力を生成する 2 つのコード パス (どちらもボタン クリックから開始) があり、どちらも次のようになります。

Browser.Focus();
Browser.DocumentText = RenderAsHTML();

最初のボタンは左側のリストボックスも更新しますが、2 番目のボタンは更新しません。奇数/偶数パターンは、押されたボタンに依存しません。

ここで何が起こっているのですか?

以下の応答を試してから、それに物を投げると、非常に興味深いことがわかりました。

システムは、ウィンドウがフォーカスされていると認識しています。Browser.Focused は、スクロール ホイール メッセージを受け付けていない場合でも true を返します。

さらに奇妙にするために、いくつかの変数を表示するメッセージボックスをそこに投げるというテストを行いました.そして、そのボックスがクリアされて画面に戻ると、スクロールホイールは100%動作しました. MessageBox.Show 行のみを削除すると、古い動作に戻りました。

4

1 に答える 1

0

on Winforms c# - TabPage の最初の子コントロールにフォーカスを設定すると、同様の質問が見つかります。

 ActiveControl = yourControlThatReceiveFocus;
于 2012-01-18T16:51:56.503 に答える