在 Windows 窗体上承载 ActiveX 控件时的注意事项

尽管 Windows 窗体已经为承载 Windows 窗体控件而进行了优化,您仍可以使用 ActiveX 控件。 规划使用 ActiveX 控件的应用程序时应注意下列事项:

  • 安全性   公共语言运行时已增强了代码访问安全性。 以 Windows 窗体为特色的应用程序在完全受信任的环境中运行不会有任何问题;在不完全受信任的环境中运行时,大部分功能是可访问的。 Windows 窗体控件不用编译就可以在浏览器中承载。 然而,Windows 窗体上的 ActiveX 控件无法利用这些安全性增强。 运行 ActiveX 控件需要非托管代码权限,这种权限是使用 SecurityPermissionAttribute.UnmanagedCode 属性设置的。 有关安全性和非托管代码权限的更多信息,请参见 SecurityPermissionAttribute 类

  • 总拥有成本   添加到 Windows 窗体的 ActiveX 控件将作为一个整体部署到该 Windows 窗体中,这会显著增加所创建文件的大小。 另外,在 Windows 窗体上使用 ActiveX 控件要求写入注册表。 与不要求这样做的 Windows 窗体控件相比,ActiveX 控件对用户的计算机更具有侵略性。

    提示

    使用 ActiveX 控件时需要使用 COM 互操作包装。 有关更多信息,请参见 Visual Basic 和 Visual C# 中的 COM 互操作性

    提示

    如果 ActiveX 控件的某个成员名与 .NET Framework 中定义的某一名称匹配,则 ActiveX 控件导入程序在创建 AxHost 派生类时会在该成员名前加上 Ctl 前缀。 例如,如果 ActiveX 控件有一个名为 Layout 的成员,由于 Layout 事件已在 .NET Framework 中定义,所以该成员将在 AxHost 派生类中重命名为 CtlLayout

请参见

任务

如何:向 Windows 窗体添加 ActiveX 控件

参考

不同语言和库中的控件和可编程对象的比较

概念

代码访问安全性

其他资源

将控件放在 Windows 窗体上

Windows 窗体控件