在 Windows Forms 上裝載 ActiveX 控制項的考慮因素
雖然 Windows Forms 已進行最佳化來裝載 Windows Forms 控制項,但是您仍然可以使用 ActiveX 控制項。 規劃使用 ActiveX 控制項的應用程式時,請注意下列考量:
安全性 Common Language Runtime 已增強程式碼存取安全性。 具備 Windows Forms 的應用程式可以在完全信任的環境中執行而不發生問題,而在半受信任的環境中則可以存取大部分的功能。 Windows Forms 控制項可以裝載在瀏覽器中,而且不會很複雜。 不過,Windows Forms 上的 ActiveX 控制項無法利用這些安全性加強功能。 執行 ActiveX 控制項需要非受控程式碼權限,其會使用 SecurityPermissionAttribute.UnmanagedCode 屬性來設定。 如需安全性和非受控程式碼權限的詳細資訊,請參閱 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 中定義的。