あるフォームの中で、複数のパネルを条件によって表示/非表示にしています。
その中で、あるComboBoxにカーソルを当て、キーボードから値を入力していくと
下記の例外ダイアログが表示されます。
---------------------------
<アプリ名>
---------------------------
無効/非表示ウィンドウにはフォーカスを設定できません.
---------------------------
OK
---------------------------
このComboBox自体にはイベントは設定されていませんが、
ComboBoxに文字を入力していくと、文字数に関係なく上記エラーが発生します。
メッセージでネットを検索した所、SetFocusまわりが怪しいという事で調べると、
いくつかSetFocusを使っている部分もありましたが、上記の通りComboBoxに
文字入力した時のイベント処理はなにもありませんので、なぜこのエラーが
発生するのかわからくなってしまっています。
念のために、それぞれのpanel.visibleでSetFocusが実行されるのを抑止した
つもりですが、それでも状況は変わりません。
なにかアドバイスなどありましたらお願いできますでしょうか?
何個のパネルを切り替えているのか分かりませんが、
ソース上、いったんすべて表示にして、実行。
このときは、エラーが出ないんですよね?
で、そのあと、1つずつパネルの非表示をするようにして
実行し、どのパネルでエラーになるのかで
特定しないと難しいようなきがします。
回答になっていないかも知れませんが・・・。
とりま騙されたと思って
XX.SetFocus を ActiveControl:=XX に全て変えてテストしてみてください
ないさん、けどさん、レスありがとうございます。
色々やってはみましたが、やはり解消できませんでした。
メッセージは出るものの実害はない事や、その画面を利用する
頻度も少ないので、ひとまずしばらく様子見としたいと思います。
① とりあえず SetFocus を全部コメントにしてみる
② 1個づつ元に戻してどこの SetFocus で発生しているか確認する
③ 何故そこの SetFocus が実行されているか考える
レスをくださった皆様、ありがとうございました。
パネル表示回りを再確認して書いた所、現象は発生しなくなりました。
原因が特定できませんでしたが、とりあえず解決とさせていただきます。