Share via


Consideraciones al alojar un control ActiveX en Windows Forms

Aunque Windows Forms se han optimizado para hospedar controles de Windows Forms, todavía puede utilizar los controles ActiveX. Tenga en cuenta las consideraciones siguientes al planear una aplicación que utiliza controles ActiveX:

  • Seguridad Se ha mejorado Common Language Runtime con respecto a la seguridad de acceso del código. Las aplicaciones que incluyen Windows Forms pueden ejecutarse en un entorno de plena confianza sin problema y en un entorno de confianza parcial con la mayoría de la funcionalidad accesible. Los controles de Windows Forms se pueden hospedar en un explorador sin ninguna complicación. Sin embargo, los controles ActiveX en Windows Forms no pueden aprovechar estas mejoras de seguridad. La ejecución de un control ActiveX requiere permiso de código no administrado, que se establece con la propiedad SecurityPermissionAttribute.UnmanagedCode. Para obtener más información sobre la seguridad y el permiso de código no administrado, consulte SecurityPermissionAttribute.

  • Costo total de propiedad Los controles ActiveX agregados a Windows Forms se implementan con ese formulario Windows Forms en su totalidad, lo que puede aumentar significativamente el tamaño de los archivos creados. Además, el uso de los controles ActiveX en Windows Forms requiere que se escriba en el registro. Esto es más invasor para un equipo de usuario que los controles de Windows Forms, que no lo necesitan.

    Nota

    Trabajar con un control ActiveX requiere el uso de un contenedor de interoperabilidad COM. Para más información, consulte Interoperabilidad COM en Visual Basic y Visual C#.

    Nota

    Si el nombre de un miembro del control ActiveX coincide con un nombre definido en .NET Framework, el importador de controles ActiveX agregará el prefijo Ctl al nombre del miembro al crear la clase derivada AxHost. Por ejemplo, si el control ActiveX tiene un miembro denominado Layout, el nombre de este se cambia a CtlLayout en la clase derivada AxHost porque el evento Layout está definido en .NET Framework.

Consulte también