他のボタンを持つフォームに .NET の WebBrowser を埋め込みました。
私が開発しているアプリケーションは、キーボードを使用せず、タッチスクリーンを使用します。したがって、実際にはマウスのみを使用します。ウェブブラウザを下にスクロールするために、2 つのカスタム ボタンを作成しました。これらのボタンをクリックすると、「PageDown」キーストロークがブラウザに送信され、ブラウザが下にスクロールするはずです。
したがって、クリック イベントのコードは次のようになります。
theForm.Activate();
Application.DoEvents();
theBrowser.Focus();
Application.DoEvents();
SendKeys.Send(key);
「theForm」はフォーム、「theBrowser」はブラウザ インスタンスです。
そのため、ボタンをクリックしても何も起こりません。最初にブラウザをクリックしてからボタンをクリックすると、機能します。しかし、私はそれに焦点を当てていますか?そして、アプリケーションにフォーカスを設定するのに十分なスペースを与えましたか?
でも今思うと不思議です。MessageBox.Show("HELLO"); を入れると コードでは、次のようにします。
theForm.Activate();
Application.DoEvents();
theBrowser.Focus();
MessageBox.Show("HELLO");
Application.DoEvents();
SendKeys.Send(key);
...ボタンをクリックするとすぐに機能します。
問題は、MessageBox.Show() を使用しないとこのコードが機能しないのに、MessageBox.Show() を使用すると機能するのはなぜですか?
お役に立てば幸いです。よろしくお願いします...