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

Windows フォームは、Windows フォーム コントロールをホストするために最適化されていますが、ActiveX コントロールを使うこともできます。 ActiveX コントロールを使うアプリケーションを計画するときは、次の考慮事項に留意してください。

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

  • 総保有コスト Windows フォームに追加される ActiveX コントロールは、その Windows フォーム全体と共に配置されるため、作成されるファイルのサイズが大幅に追加する可能性があります。 さらに、Windows フォームで ActiveX コントロールを使うには、レジストリへの書き込みが必要です。 これは、レジストリへの書き込みを必要としない Windows フォーム コントロールと比較して、ユーザーのコンピューターに大きく干渉します。

    注意

    ActiveX コントロールを操作するには、COM 相互運用ラッパーを使う必要があります。 詳しくは、「Visual Basic および Visual C# における COM 相互運用性」をご覧ください。

    注意

    ActiveX コントロールのメンバーの名前が .NET Framework で定義されている名前と一致する場合、ActiveX コントロールのインポーターは、AxHost 派生クラスを作成するときに、メンバー名の前に Ctl を付けます。 たとえば、ActiveX コントロールに Layout というメンバーが含まれている場合、.NET Framework 内で Layout イベントが定義されているため、この名前は、AxHost 派生クラスでは CtlLayout に変更されます。

関連項目