在 Windows Forms 上裝載 ActiveX 控制項的考慮因素

雖然 Windows Forms 已進行最佳化來裝載 Windows Forms 控制項,但是您仍然可以使用 ActiveX 控制項。 規劃使用 ActiveX 控制項的應用程式時,請注意下列考量:

  • 安全性 Common Language Runtime 已增強程式碼存取安全性。 具備 Windows Forms 的應用程式可以在完全信任的環境中執行而不發生問題,而在半受信任的環境中則可以存取大部分的功能。 Windows Forms 控制項可以裝載在瀏覽器中,而且不會很複雜。 不過,Windows Forms 上的 ActiveX 控制項無法利用這些安全性加強功能。 執行 ActiveX 控制項需要使用 屬性設定 SecurityPermissionAttribute.UnmanagedCode 的 Unmanaged 程式碼許可權。 如需安全性和 Unmanaged 程式碼許可權的詳細資訊,請參閱 SecurityPermissionAttribute

  • 新增至 Windows Forms 的擁有權總成本 ActiveX 控制項會與該 Windows Forms 一起完整部署,這樣會大幅增加所建立檔案的大小。 此外,在 Windows Forms 上使用 ActiveX 控制項需要寫入至登錄。 這與不需要這麼做的 Windows Forms 控制項比起來,更容易擴散到使用者的電腦。

    注意

    使用 ActiveX 控制項需要使用 COM Interop 包裝函式。 如需詳細資訊,請參閱 Visual Basic 和 C# 中的 COM 互通性

    注意

    如果 ActiveX 控制項的成員名稱符合 .NET Framework 中定義的名稱,則 ActiveX 控制項匯入工具會在建立 AxHost 衍生類別時,在成員名稱前面加上 Ctl 。 例如,如果您的 ActiveX 控制項有名為 Layout 的成員,則會在 AxHost 衍生類別中將它重新命名 為 CtlLayout ,因為 Layout 事件是在 .NET Framework 中定義。

另請參閱