トップ回答者
VB2005または2008で、VB6.0で作ったフォームを埋め込みたい

質問
回答
-
コンドル さんからの引用 VB2005,VB2008でWindowsアプリを開発しています。
VB6.0で作った画面がありまして、
その画面をVB2005などで作成する画面に埋め込みたいと思っています。別画面として立ち上げるのであれば
dllにしてその画面を起動すれば良いのだろうと
想像できるのですが、
埋め込む方法が、どうしてもわかりませんでした。何か方法はございませんでしょうか?
もしよろしければ、ご教示頂けませんか?よろしくお願いいたします。
方法としては、VB6で「ActiveX コントロール」としてプロジェクトを作成して部品を配置して、[ファイル]-[xxxx.ocxの作成]を選択して、ActiveX コントロールのビルドを行います。
(Vistaの場合、管理者として実行する必要があります)
続いてVB.NETでの作業ですが、ソリューションエクスプローラで[参照設定]-[参照の追加]で[COM]タブをクリックして作成、もしくはインストールしたOCXを追加します。
次にツールボックスの[すべてのWindowsフォーム]や[全般]でマウスの右クリックをして[アイテムの選択]を選択します。
[ツールボックス アイテムの選択]ウィンドウが開きますので、[COMコンポーネント]から追加したコンポーネントをチェックします。
すると、ツールボックスにVB6で作成したActiveXコントロールがツールボックスに追加されますので、それをFormに貼り付ければ完了です。
ただしソースコードのメンテナンスをVB6とVB.NETの両方で行うため、余りお勧めは出来ませんが…。
できれば(後で手直しが必要ですが)アップグレードウィザードによるアップグレードをお勧めします。
-
コンドル さんからの引用 VB6.0で作った画面がありまして、
その画面をVB2005などで作成する画面に埋め込みたいと思っています。「埋め込む」とはどういったイメージでしょうか?
ちょっと掴みきれませんでした。
別のフォームとして独立して動く?(別exe?)
別のフォームとしてデータ等を連携させて動く?(連携させるとしたらどの程度か?)
VB2005/2008のフォームにコントロールとして貼り付ける?
VB2005/2008のフォームの中にMDI子フォームのように存在させる?
コンドル さんからの引用 別画面として立ち上げるのであれば
dllにしてその画面を起動すれば良いのだろうと
想像できるのですが、
埋め込む方法が、どうしてもわかりませんでした。VB6のフォームを利用するにあたっては、VB2005/2008間のようにDLL参照ではできません。
実現したいシナリオによって、単純にexeをコールするだけから、ActiveX EXE/ActiveXコントロールといった手法も考えられます。
コンドル さんからの引用 何か方法はございませんでしょうか?
もしよろしければ、ご教示頂けませんか?今実現したいことを、もう少し説明してもらえないでしょうか?
どんなことを実現したいのかが分かることで、的確なアドバイスをもらえる確率が高まります。
今の状態ではいろんな可能性を考えて、いろんな方法が提示されるため、スマートな解決とはいかないかもしれません。
すべての返信
-
コンドル さんからの引用 VB2005,VB2008でWindowsアプリを開発しています。
VB6.0で作った画面がありまして、
その画面をVB2005などで作成する画面に埋め込みたいと思っています。別画面として立ち上げるのであれば
dllにしてその画面を起動すれば良いのだろうと
想像できるのですが、
埋め込む方法が、どうしてもわかりませんでした。何か方法はございませんでしょうか?
もしよろしければ、ご教示頂けませんか?よろしくお願いいたします。
方法としては、VB6で「ActiveX コントロール」としてプロジェクトを作成して部品を配置して、[ファイル]-[xxxx.ocxの作成]を選択して、ActiveX コントロールのビルドを行います。
(Vistaの場合、管理者として実行する必要があります)
続いてVB.NETでの作業ですが、ソリューションエクスプローラで[参照設定]-[参照の追加]で[COM]タブをクリックして作成、もしくはインストールしたOCXを追加します。
次にツールボックスの[すべてのWindowsフォーム]や[全般]でマウスの右クリックをして[アイテムの選択]を選択します。
[ツールボックス アイテムの選択]ウィンドウが開きますので、[COMコンポーネント]から追加したコンポーネントをチェックします。
すると、ツールボックスにVB6で作成したActiveXコントロールがツールボックスに追加されますので、それをFormに貼り付ければ完了です。
ただしソースコードのメンテナンスをVB6とVB.NETの両方で行うため、余りお勧めは出来ませんが…。
できれば(後で手直しが必要ですが)アップグレードウィザードによるアップグレードをお勧めします。
-
コンドル さんからの引用 VB6.0で作った画面がありまして、
その画面をVB2005などで作成する画面に埋め込みたいと思っています。「埋め込む」とはどういったイメージでしょうか?
ちょっと掴みきれませんでした。
別のフォームとして独立して動く?(別exe?)
別のフォームとしてデータ等を連携させて動く?(連携させるとしたらどの程度か?)
VB2005/2008のフォームにコントロールとして貼り付ける?
VB2005/2008のフォームの中にMDI子フォームのように存在させる?
コンドル さんからの引用 別画面として立ち上げるのであれば
dllにしてその画面を起動すれば良いのだろうと
想像できるのですが、
埋め込む方法が、どうしてもわかりませんでした。VB6のフォームを利用するにあたっては、VB2005/2008間のようにDLL参照ではできません。
実現したいシナリオによって、単純にexeをコールするだけから、ActiveX EXE/ActiveXコントロールといった手法も考えられます。
コンドル さんからの引用 何か方法はございませんでしょうか?
もしよろしければ、ご教示頂けませんか?今実現したいことを、もう少し説明してもらえないでしょうか?
どんなことを実現したいのかが分かることで、的確なアドバイスをもらえる確率が高まります。
今の状態ではいろんな可能性を考えて、いろんな方法が提示されるため、スマートな解決とはいかないかもしれません。