[リストへもどる]
一括表示

投稿時間:2004/01/14(Wed) 16:43
投稿者名:tomo
Eメール:
URL :
タイトル:
WebBrowser使用時にフォーカスが移らない
はじめまして。

早速ですが質問です。
今タイピングソフトを作ってます。
タイピングの文字判断などの部分はできましたが
gifアニメを表示させながらキー入力をさせるソフトを作りたいと思っています。
グラフィック関連のところにあるGIFファイルのアニメーションをVBで表示を読みました。
form_loadで書いてあるとおりにプログラムすると
画面にgifアニメは表示できますが、その後gifアニメを表示しながらキーを押そうとすると
form_keypressのイベントへいかないので
キー入力がされていることが判断できないようです。

form1.setforcusにしてフォーカスをwebbrowserにいかないようにしたのですが
動きませんでした。
フォームにコマンドボタンなどをおくと同様にform_keypressのイベントへいかないので
フォームにはラベルしかありません。

とてもわかりにくい説明ですみません。
もし、わかる方がいらっしゃったら教えてください。

投稿時間:2004/01/14(Wed) 18:25
投稿者名:これ
URL :
タイトル:
Re: WebBrowser使用時にフォーカスが移らない
確かにKeyPressイベントは効きませんね。
コード体系が違ってきますが
KeyDown イベントで処理するのはダメでしょうか?

投稿時間:2004/01/16(Fri) 10:58
投稿者名:tomo
Eメール:
URL :
タイトル:
Re^2: 解決しました!
わかりにくい説明だったのに教えてくださりありがとうございます。

KeyDownイベントを使ったのですがダメでした。
どうしてもWebBrowserにフォーカスが行ってしまうので入力できないようです。
そこでラベルの代わりにテキストボックスをフォームにつけて
フォーカスを移し、その後Form_KeyPressイベントのほうに移ると動きました!

ヒントを教えてくださったこれさんには感謝です!!
ありがとうございました。

投稿時間:2004/01/19(Mon) 11:28
投稿者名:これ
URL :
タイトル:
Re^3: 解決しました!
> KeyDownイベントを使ったのですがダメでした。
> どうしてもWebBrowserにフォーカスが行ってしまうので入力できないようです。
> そこでラベルの代わりにテキストボックスをフォームにつけて
> フォーカスを移し、その後Form_KeyPressイベントのほうに移ると動きました!

Form の 「KeyPreview」プロパティは True になってますか?
もう解決されたようですが、参考までに試してみてはいかがでしょう?

私がテストしたのは、KeyPreview = True の Form に
Browserコントロールと Label を貼って Form の KeyDownイベントで
入力キーコードをラベルに表示しただけなのですが
ちゃんと出てましたので・・・

投稿時間:2004/01/19(Mon) 12:58
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^4: 解決しました!
> 私がテストしたのは、KeyPreview = True の Form に
> Browserコントロールと Label を貼って Form の KeyDownイベントで
> 入力キーコードをラベルに表示しただけなのですが

WebBrowsrを使っている場合、KeyPreviewを設定しても、フォームには通達されない事があるのです。
# IDocHostUIHandlerの実装によるのかも知れませんけど。

で、その場合、
・MSHTMLを使って、documentプロパティ経由でonkeypressイベントを受け取り、そこで処理する。
もしくは、
・WebBrowser以外のコントロールにフォーカスを移しておき、FormのKeyPressで処理する。
などといった手法を取る事になる、と。

投稿時間:2004/01/20(Tue) 12:55
投稿者名:これ
URL :
タイトル:
Re^5: 解決しました!
> WebBrowsrを使っている場合、KeyPreviewを設定しても、フォームには通達されない事があるのです。
> # IDocHostUIHandlerの実装によるのかも知れませんけど。
>
> で、その場合、
> ・MSHTMLを使って、documentプロパティ経由でonkeypressイベントを受け取り、そこで処理する。
> もしくは、
> ・WebBrowser以外のコントロールにフォーカスを移しておき、FormのKeyPressで処理する。
> などといった手法を取る事になる、と。

フォローありがとうございました。
私のテスト結果は、たまたまうまくいっただけだったのかもしれませんね。
今後の参考にさせていただきます。