尽管 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 中定义的名称匹配,则创建AxHost派生类时,ActiveX Control Importer 会将成员名称作为 Ctl 前缀。 例如,如果 ActiveX 控件具有名为 Layout 的成员,则会在 AxHost 派生类中重命名 CtlLayout ,因为 布局 事件是在 .NET Framework 中定义的。