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

更新:2007 年 11 月

尽管 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 窗体控件