Partilhar via


Considerações ao hospedar um controle ActiveX em um formulário do Windows

Embora o Windows Forms tenha sido otimizado para hospedar controles do Windows Forms, você ainda pode usar controles ActiveX. Tenha em mente as seguintes considerações ao planejar um aplicativo que usa controles ActiveX:

  • Security O Common Language Runtime foi aprimorado no que diz respeito à segurança de acesso ao código. Os aplicativos com Windows Forms podem ser executados em um ambiente totalmente confiável sem problemas e em um ambiente semiconfiável com a maioria das funcionalidades acessíveis. Os controles do Windows Forms podem ser hospedados em um navegador sem complicações. No entanto, os controles ActiveX no Windows Forms não podem aproveitar esses aprimoramentos de segurança. A execução de um controle ActiveX requer permissão de código não gerenciado, que é definida com a propriedade SecurityPermissionAttribute.UnmanagedCode. Para obter mais informações sobre segurança e permissão de código não gerenciado, consulte SecurityPermissionAttribute.

  • Custo Total de Propriedade controles ActiveX adicionados a um Windows Form são implantados com esse Windows Form em sua totalidade, o que pode aumentar significativamente o tamanho do(s) arquivo(s) criado(s). Além disso, usar controles ActiveX no Windows Forms requer gravação no registro. Isso é mais invasivo para o computador de um usuário do que os controles do Windows Forms, que não exigem isso.

    Observação

    Trabalhar com um controlo ActiveX requer o uso de um encapsulador de interoperabilidade COM. Para obter mais informações, consulte Interoperabilidade COM no Visual Basic e Visual C#.

    Observação

    Se o nome de um membro do controle ActiveX corresponder a um nome definido no .NET Framework, o Importador de Controle ActiveX prefixará o nome do membro com Ctl quando criar a classe derivada AxHost. Por exemplo, se seu controle ActiveX tiver um membro chamado Layout, ele será renomeado CtlLayout na classe derivada de AxHost porque o evento Layout é definido dentro do .NET Framework.

Ver também