Windows フォームで ActiveX コントロールをホストする場合の考慮事項

Windows フォームは、Windows フォーム コントロールをホストするために最適化されていますが、代わりに ActiveX コントロールも使用できます。 アプリケーションで ActiveX コントロールを使用する場合には、以下の点を考慮してください。

  • セキュリティ   共通言語ランタイムは、コード アクセスのセキュリティについて強化されています。 Windows フォームを使用するアプリケーションは、問題のない完全に信頼できる環境で実行するか、またはほとんどの機能にアクセスできる、やや信頼性の低い環境で実行できます。 Windows フォーム コントロールは、ブラウザーで簡単にホストできます。 ただし、Windows フォーム上の ActiveX コントロールでは、これらのセキュリティの拡張機能を利用できません。 ActiveX コントロールの実行には、SecurityPermissionAttribute.UnmanagedCode プロパティで設定されるアンマネージ コード アクセス許可が必要です。 セキュリティおよびアンマネージ コード アクセス許可の詳細については、「SecurityPermissionAttribute クラス」を参照してください。

  • TCO (Total Cost of Ownership)   Windows フォームに追加された ActiveX コントロールは、その全体が Windows フォームと共に配置されるため、作成されるファイルのサイズがかなり大きくなる場合があります。 また、Windows フォーム上で ActiveX コントロールを使用するには、レジストリへの書き込みが必要です。 そのため、レジストリへの書き込みを必要としない Windows フォーム コントロールに比べて、ユーザーがコンピューターに干渉する度合いが大きくなります。

    注意

    ActiveX コントロールを使用するには、COM 相互運用ラッパーが必要です。 詳細については、「Visual Basic および Visual C# における COM 相互運用性」を参照してください。

    注意

    ActiveX コントロールの中に、.NET Framework で定義されている名前と同じ名前のメンバーがある場合、AxHost の派生クラスの作成時に、ActiveX コントロール インポーターによって、これらのメンバーにプレフィックス Ctl が付けられます。 たとえば、ActiveX コントロールに Layout という名前のメンバーが含まれる場合、.NET Framework に Layout イベントが定義されているため、AxHost 派生クラスでは CtlLayout という名前に変更されます。

参照

処理手順

方法 : Windows フォームに ActiveX コントロールを追加する

参照

各言語およびライブラリにおける、コントロールとプログラミング可能オブジェクトの比較

概念

コード アクセス セキュリティ

その他の技術情報

Windows フォームへのコントロールの追加

Windows フォーム コントロール