投稿者 FORZA  (社会人) 投稿日時 2008/11/21 06:06:21
VB歴1年未満の初心者です。

2008にて、ATLを使用した某社のActiveXコントロールを
MDI子フォームの1つに貼り付けたところ、
他のMDI子フォームを開いた状態からこのActiveXを持ったMDI子フォームを開くと
MDI子フォーム間のアクティブフォームの切替が正常に行われなくなってしまいます。
アクティブにさせたいフォームをクリックしても変化がなく、
アクティブにさせたいフォーム内のコントロールをクリックすると
そのコントロールにフォーカスは移るもののやはりアクティブなフォームは変わらない
といった状況です。

このActiveXコントロールの製作元に問い合わせたところ、
「ATLを使用したActiveXコントロールをVBで使用すると発生するが、
VCでは発生しないので原因がよくわかっていない」とのことでした。

すべてのMDI子フォームについて、フォームのClickイベントと
各コントロールのGotFocusやEnter、Clickイベントなどで
フォームにフォーカスを移すようにコーディングすれば
正常に動作させられるかとは思うのですが、
MDI子フォームの数も、それぞれが持つコントロールの数も多く、
コントロールの種類も多種多様ですので
何か他の解決策はないものかと模索しております。

この問題の原因や解決策について、何かご存知の方いらっしゃいましたら
宜しくお願い致します。