0

WindowsフォームWebブラウザコントロールを介して埋め込みIEを使用するアプリケーションがあります。いくつかの.NETコントロールをHTMLページに埋め込みたいです。

<object>タグ(dllname#controlname)で特別なclassidを使用するための古いサポート(.NET 1.0以降)がありますが、実験を通じて、dllがhttp経由で提供される場合にのみ機能することがわかったため、使用する。

埋め込みIEインスタンスにロードされた既存のhtmlページに.NETコントロール(おそらくUserControlサブクラス)を追加する他の方法はありますか?

.NETで適切なActiveXコントロールを記述し、レジストリのないCOMを使用してIEにインスタンス化させることはできますか?VB移行を段階的に有効にするためにこれをサポートするMSに関する記事を覚えているようですが、何も見つかりません。

MSHTMLに関する他の質問は、組み込みの動作を変更することはほとんど不可能であることを示唆しているようです。そのため、私にはほとんど希望がありません。つまり、誰かが解決策を持っていれば非常に嬉しいです。

/ P

4

1 に答える 1

0

私は Microsoft Interop Forms Toolkit 2.1 を使用してテストしました。これにより、OCX (目に見える ActiveX コントロール) として埋め込むことができる UserControl を作成することが可能になりました。マネージ COM コンポーネントは、レジストリを使用しない COM を使用した埋め込みに必要な OCX フラグを設定できないため、レジストリの書き込みが必要であることが判明しました (これらのフラグはネイティブ COM でのみ使用可能です)。プログラムで C# mshtml ホストの mshtml に "object" タグを追加した後、HtmlObject インスタンスとその @object プロパティにアクセスして、マネージ UserControl サブクラスにアクセスし、追加の子コントロールを追加することができました。ああ、32 ビット部分と 64 ビット部分の両方にコントロールを登録するようにしました。

まだ私を悩ませているのは、レジストリへの依存関係だけです...

于 2010-12-17T13:40:45.140 に答える