Compartir a través de


Consideraciones al hospedar un control ActiveX en un formulario Windows Forms

Aunque windows Forms se ha optimizado para hospedar controles de Windows Forms, todavía puede usar controles ActiveX. Tenga en cuenta las siguientes consideraciones al planear una aplicación que use controles ActiveX:

  • Seguridad Common Language Runtime se ha mejorado con respecto a la seguridad de acceso al código. Las aplicaciones con Formularios Windows Forms se pueden ejecutar en un entorno de plena confianza sin problemas y en un entorno de confianza parcial con la mayoría de las funcionalidades accesibles. Los controles de Windows Forms se pueden hospedar en un explorador sin complicaciones. 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 SecurityPermissionAttribute.UnmanagedCode propiedad . Para obtener más información sobre la seguridad y el permiso de código no administrado, vea SecurityPermissionAttribute.

  • Costo total de propiedad Los controles ActiveX agregados a un formulario Windows Forms se implementan con ese Windows Form en su totalidad, lo que puede agregar significativamente al tamaño de los archivos creados. Además, el uso de controles ActiveX en Windows Forms requiere escribir en el Registro. Esto es más invasivo para el equipo de un usuario que los controles de Windows Forms, que no requieren esto.

    Nota:

    Trabajar con un control ActiveX requiere el uso de un wrapper de interoperabilidad COM. Para obtener más información, vea 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 añadirá el prefijo al nombre del miembro con Ctl cuando cree la AxHost clase derivada. Por ejemplo, si el control ActiveX tiene un miembro denominado Layout, se cambia el nombre de CtlLayout en la clase derivada de AxHost porque el evento Layout se define dentro de .NET Framework.

Consulte también